• Java知识系统回顾整理01基础06数组06二维数组


    一、一维数组和二维数组

    这是一个一维数组, 里面的每一个元素,都是一个基本类型int 

    int a[] =new int[]{1,2,3,4,5};

       

    这是一个二维数组,里面的每一个元素,都是一个一维数组 

    所以二维数组又叫数组的数组 

    int b[][] = new int[][]{

       {1,2,3},

       {4,5,6},

       {7,8,9}

    };

       

    二、初始化二维数组

    public class HelloWorld {

        public static void main(String[] args) {

           //初始化二维数组,

           int[][] a = new int[2][3]; //有两个一维数组,每个一维数组的长度是3

           a[1][2] = 5;  //可以直接访问一维数组,因为已经分配了空间

                

           //只分配了二维数组

           int[][] b = new int[2][]; //有两个一维数组,每个一维数组的长度暂未分配

           b[0]  =new int[3]; //必须事先分配长度,才可以访问

           b[0][2] = 5;

              

           //指定内容的同时,分配空间,没有指定有几个一维数组,也没有指定数组的长度

           int[][] c = new int[][]{

                   {1,2,4},

                   {4,5},

                   {6,7,8,9}

           };

        }

    }

       

    三、练习--二维数组

    题目:

    定义一个5X5的二维数组。 然后使用随机数填充该二维数组。

    找出这个二维数组里,最大的那个值,并打印出其二维坐标

       

    0-100的 随机整数的获取办法有多种,下面是参考办法之一:

    (int) (Math.random() * 100)

    Math.random() 会得到一个0-1之间的随机浮点数,然后乘以100,并强转为整型即可。

    实现效果:

       

    官方示例代码:

    public class HelloWorld {

        public static void main(String[] args) {

            int a[][] = new int[5][5];

            // 初始化这个数组

            for (int i = 0; i < a.length; i++) {

                for (int j = 0; j < a[i].length; j++) {

                    a[i][j] = (int) (Math.random() * 100);

                }

            }

            // 打印这个数组的内容:

            for (int[] row : a) {

                for (int each : row) {

                    System.out.print(each + " ");

                }

                System.out.println();

            }

       

            int max = -1;// 最大值

            // 最大值的坐标

            int target_i = -1;

            int target_j = -1;

            for (int i = 0; i < a.length; i++) {

                for (int j = 0; j < a[i].length; j++) {

                    if (a[i][j] > max) {

                        max = a[i][j];

                        target_i = i;

                        target_j = j;

                    }

                }

            }

            System.out.println("找出来最大的是:" + max);

            System.out.println("其坐标是[" + target_i + "][" + target_j + "]");

        }

    }

       

    个人整理代码:

    public class Array06 {

        public static void main(String[] args) {

            TwoDimensionalArrayExercise();

        }

       

        public static void InitializeATwoDimensionalArray(){

            // 初始化二维数组

            int[][] a = new int[2][3];//意思是创建了一个有两个一维数组的二维数组,每个一维数组的长度是3

              

            a[1][2] = 5; // 可以直接访问一维数组,因为已经分配了空间

              

            //只分配了二维数组

            int [][] b = new int[2][];  // 有两个一维数组,每个一维数组的长度暂未分配

            b[0] = new int[3];  //必须事先对一维数组进行分配长度,才可以访问

              

            b[0][2] = 5;

              

            // 指定内容的同时,分配空间

            int [][]  c = new int[][]{

                  

            };

        }

              

        public static void TwoDimensionalArrayExercise(){

            int [][] a = new int[5][5];

            // 初始化这个数组

            for (int i = 0; i < a.length; i++) {

                for (int j = 0; j < a.length; j++) {

                    a[i][j] = (int)(Math.random()*100); //Math.random() 会得到一个0-1之间的随机浮点数

                }

            }

              

            // 打印这个数组的元素值

            for (int[] twoEach : a) {

                for (int oneEach : twoEach) {

                    System.out.println(oneEach);

                }

                System.out.println("--------------------------------------------");            

            }

              

            int max = -1;   //假定,初始的需要寻找的最大值为-1   (给这个不可能出现的值,方便后面寻找变换)

            // 最大值的坐标

            int target_i = -1;

            int target_j = -1;

              

            for (int i = 0; i < a.length; i++) {

                for (int j = 0; j < a.length; j++) {

                    if (a[i][j] > max) {

                        max = a[i][j];

                        target_i = i;

                        target_j = j;

                    }

                }

            }

              

            System.out.println("找出来的二维数组最大值是:" + max);

            System.out.println("该最大值的坐标是:[" + target_i + "," + target_j +"]");

        }

    }

       

       

       

  • 相关阅读:
    开源项目
    ASP.NET上传文件带有真实的进度条
    VS2010不能调试的问题
    sql server 2005中获取数据库个数
    【转载】Nios II DMA: memory to memory
    【转】我们为什么要实习
    【转】应聘时最漂亮的回答
    【转】面试建议 每个要找工作的童鞋必看~
    【转载】FPGA Verilog HDL 系列实例 电子琴 电子钟
    【转】关于工作与生活 HP大中华区总裁孙振耀的退休感言
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/10774748.html
Copyright © 2020-2023  润新知