java旋转二维数组实例

 更新时间:2014年10月29日 11:36:08   投稿:shichen2014  
这篇文章主要介绍了java旋转二维数组,以实例形式较为详细的讲述了旋转二维数的原理与实现方法,需要的朋友可以参考下

本文实例讲述了java旋转二维数组的操作,分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:

package test;
/*
 *     1    2    3    4    5   
 *    16    17    18    19    6   
 *    15    24    25    20    7   
 *    14    23    22    21    8   
 *    13    12    11    10    9
 *
 *    写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。
 * */
public class Test6
{
    public static void main(String[] args)
    {
        arraynum(4);
    }
    // 便于改代码..输入不同y值输出不同的二维数列
    private static void arraynum(int x)
    {
        int[][] arr = new int[x][x];
        int len = arr.length, max = 0, count = 0;
        specArr(arr, len, max, count);
        arrprint(arr);
    }
    // 高级for输出打印用的
    private static void arrprint(int[][] arr)
    {
        for (int[] in : arr)
        {
            for (int t : in)
            {
                System.out.print(t + "\t");
            }
            System.out.println();
        }
    }
    private static void specArr(int[][] arr, int len, int max, int count)
    {
        while (len > 0)
        {
            int j = 0;
            for (int index = 0; index < (len - 1) * 4; index++)
            {
                if (index < len - 1)
                    arr[0 + count][index + count] = ++max;
                else if (index < 2 * (len - 1))
                    arr[count + j++][arr.length - 1 - count] = ++max;
                else if (index < 3 * (len - 1))
                    arr[arr.length - 1 - count][(j--) + count] = ++max;
                else if (index < 4 * (len - 1))
                    arr[arr.length - 1 - (j++) - count][0 + count] = ++max;
            }
            if (len == 1)
            {
                arr[arr.length / 2][arr.length / 2] = max + 1;
            }// 注意到 当y值为奇数时,会有循环到n=1的情况,需要补进数组最中间值
            count++;
            len = len - 2;
        }
    }
}

希望本文所述对大家的Java程序设计有所帮助。

相关文章

  • 深入了解Java ServletContext

    深入了解Java ServletContext

    这篇文章主要介绍了Java ServletContext的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • Java用单向环形链表来解决约瑟夫环Josepfu问题

    Java用单向环形链表来解决约瑟夫环Josepfu问题

    如果把单链表的最后一个节点的指针指向链表头部,而不是指向NULL,那么就构成了一个单向循环链表,通俗讲就是把尾节点的下一跳指向头结点
    2021-10-10
  • Spring中的三级缓存与循环依赖详解

    Spring中的三级缓存与循环依赖详解

    Spring三级缓存是Spring框架中用于解决循环依赖问题的一种机制,这篇文章主要介绍了Spring三级缓存与循环依赖的相关知识,本文给大家介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • Springboot控制反转与Bean对象的方法

    Springboot控制反转与Bean对象的方法

    文章介绍了Spring Boot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括通过@ComponentScan和@Bean注解的方式,并讨论了Bean的依赖注入方法,如构造器注入、Setter注入和字段注入,感兴趣的朋友一起看看吧
    2025-03-03
  • SpringBoot配置lombok与logback过程解析

    SpringBoot配置lombok与logback过程解析

    这篇文章主要介绍了SpringBoot配置lombok与logback过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 从Android源码剖析Intent查询匹配的实现

    从Android源码剖析Intent查询匹配的实现

    这篇文章主要介绍了从Android源码剖析Intent查询匹配的实现,Intent部分的源码为Java代码,需要的朋友可以参考下
    2015-07-07
  • Java语言中的内存泄露代码详解

    Java语言中的内存泄露代码详解

    这篇文章主要介绍了Java语言中的内存泄露代码详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 在 Spring Boot 中集成 MinIO 对象存储

    在 Spring Boot 中集成 MinIO 对象存储

    MinIO 是一个开源的对象存储服务器,专注于高性能、分布式和兼容S3 API的存储解决方案,本文将介绍如何在 Spring Boot 应用程序中集成 MinIO,以便您可以轻松地将对象存储集成到您的应用中,需要的朋友可以参考下
    2023-09-09
  • 关于junit测试需要的依赖

    关于junit测试需要的依赖

    这篇文章主要介绍了关于junit测试需要的依赖,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Java String.replace()方法

    Java String.replace()方法"无效"的原因及解决方式

    这篇文章主要介绍了Java String.replace()方法"无效"的原因及解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08

最新评论