一、一维数组和二维数组
这是一个一维数组, 里面的每一个元素,都是一个基本类型int
int a[] =new |
这是一个二维数组,里面的每一个元素,都是一个一维数组
所以二维数组又叫数组的数组
int b[][] = new {1,2,3}, {4,5,6}, {7,8,9} }; |
二、初始化二维数组
public class HelloWorld { public static //初始化二维数组, int[][] a = new a[1][2] = 5; //可以直接访问一维数组,因为已经分配了空间 //只分配了二维数组 int[][] b = new b[0] =new b[0][2] = 5; //指定内容的同时,分配空间,没有指定有几个一维数组,也没有指定数组的长度 int[][] c = new {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 int a[][] = new // 初始化这个数组 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 + "\t"); } 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 TwoDimensionalArrayExercise(); } public static // 初始化二维数组 int[][] a = new a[1][2] = 5; // 可以直接访问一维数组,因为已经分配了空间 //只分配了二维数组 int [][] b = new b[0] = new b[0][2] = 5; // 指定内容的同时,分配空间 int [][] c = new }; } public static int [][] a = new // 初始化这个数组 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 +"]"); } } |