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 +"]");

    }

}

   

   

   

原文地址:https://www.cnblogs.com/xlfcjx/p/10774748.html