zoukankan      html  css  js  c++  java
  • 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 +"]");

        }

    }

       

       

       

  • 相关阅读:
    GridView中checkbox实现全选[转]
    go 格式化秒 running
    mysql 聚簇索引和非聚簇索引 running
    go context上下文取消 running
    go reflect running
    time.ticker running
    go 数据结构与算法之二分查找 running
    mysql 联合索引最左前缀匹配原则 running
    es 修改 mapping 字段类型 running
    linux 查看虚拟机网卡命令 running
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/10774748.html
Copyright © 2011-2022 走看看