1、二维数组
- 这是一个一维数组, 里面的每一个元素,都是一个基本类型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}
};
}
}
2、练习:二维数组
定义一个5X5的二维数组。 然后使用随机数填充该二维数组。
找出这个二维数组里,最大的那个值,并打印出其二维坐标
0-100的 随机整数的获取办法有多种,下面是参考办法之一:
(int) (Math.random() * 100)
Math.random() 会得到一个0-1之间的随机浮点数,然后乘以100,并强转为整型即可。
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Demo06 {
public static void main(String[] args) {
// 新建二维数组
int[][] a = new int[5][5];
System.out.println("二维数组a[]: ");
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
a[i][j] = (int) (Math.random() * 100);
System.out.print("a[" + i + "][" + j + "]: " + a[i][j] + "\t");
}
System.out.println();
}
// 找出其中最大值,并打印坐标
int max = a[0][0];
List x = new ArrayList<>();
List y = new ArrayList<>();
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (a[i][j] > max) {
max = a[i][j];
x.clear();
y.clear();
x.add(i);
y.add(j);
} else if (a[i][j] < max) {
continue;
} else {// 把坐标存起来
x.add(i);
y.add(j);
}
}
}
System.out.println("数组a[]中最大值为:" + max);
System.out.print("最大值" + max + "的二维坐标为:");
for (int i = 0; i < x.size(); i++) {
System.out.print("[" + x.get(i) + "][" + y.get(i) + "]\t");
}
}
}