一维为点,二维为面. 面有x轴与y轴. 那么,二维数组,光看这个名字,我们就知道可以把这个概念引入到里面去.
准备工作
首先,我们先打印一个二维数组:
public class Main {
public static void main(String[] args) {
int[][] integers = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 },
{ 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 } };
for(int i = 0; i < integers.length; i++) {
for(int j = 0; j < integers[i].length; j++) {
System.out.print(integers[i][j] + " ");
}
System.out.println();
}
}
}
效果如下:
为了能直观地看成一个平面,我们要用printf():
public class Main {
public static void main(String[] args) {
int[][] integers = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 },
{ 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 } };
for(int i = 0; i < integers.length; i++) {
for(int j = 0; j < integers[i].length; j++) {
System.out.printf("%-5d", integers[i][j]);
}
System.out.println();
}
}
}
效果如下:
思考
定位元素,其实就是获取指定元素的列(x)与行(y),定列(x)与行(y)最小值为0. 从其中随便找两三个元素进行观察,对于列(x)与行(y),你有什么发现?
指定元素的列(x)为这个元素在它所在的数组中的索引值;行(y)为它所在的数组,然后这个数组在它所在的数组中的索引值.
据上,我们可以先写两个用于获取列(x)与行(y)的方法:
static int getX(int[][] integers, int integer) {}
static int getY(int[][] integers, int integer) {}
我们可以遍历每一个元素,当遍历到的元素为指定元素时,返回值:
static int getX(int[][] integers, int integer) {
for(int i = 0; i < integers.length; i++) {
for(int j = 0; j < integers[i].length; j++) {
if(integers[i][j] == integer) {}
}
}
}
static int getY(int[][] integers, int integer) {
for(int i = 0; i < integers.length; i+&