二维数组初始化
我们先看一维数组初始化
这是一个一维数组, 里面的每一个元素,都是一个基本类型
int int a[] =new int[]{1,2,3,4,5};
接下来看二维数组初始化
这是一个二维数组,里面的每一个元素,都是一个一维数组
所以二维数组又叫数组的数组
int b[][] = new int[][]{
{1,2,3},
{4,5,6},
{7,8,9}
};
二维数组初始化代码如下
package j2se;
public class ErWeiShuZu {
public static void main(String[] args) {
//初始化二维数组
int[][] a = new int[2][3];//初始化两个一维数组,每一维数组长度是3,即两行三列
a[1][2] = 3;//可以直接访问一维数组
//对只分配了二维数组
int[][] b = new int[2][];//初始化两个一维数组,但长度没有分配
b[0] = new int[3];//只有把长度分配后才可以对数组进行访问,这句话对一维数组分配了3个长度
b[0][2] = 4;//对一维数组长度进行分配后可以进行访问
//在指定内容后进行空间进行分配
int[][] c = new int[][] {
{1,4,5},
{4,6,8},
{5,8}
};
}
}
二维数组找最大值
先看题目
定义一个5X5的二维数组。然后使用随机数填充该二维数组。
找出这个二维数组里,最大的那个值,并打印出其二维坐标。
先自己写,写完再看答案
package j2se;
public class ErWeiShuZuTest {
public static void main(String[] args) {
//二维数组练习
//定义一个5*5的二维数组,用随机数填充,范围0-100
int[][] m = new int [5][5];
for (int i = 0;i < 5; i++) {
for (int j = 0; j < 5; j++) {
m[i][j] = (int)(Math.random() * 100);
}
}
//打印一下
//不要用增强for,输出的都是每维的首地址
//for (int[] item : m) {
//System.out.println(item + " ");
//}
//打印一下
//System.out.println(m.length);//m长度为5
System.out.println("输出二维数组:");
for (int i = 0;i < 5;i++) {
for (int j = 0;j < 5; j++) {
System.out.print(m[i][j] + "\t");
}
System.out.println();//每个维度换行使用
}
System.out.println();
//找出这个二维数组里的最大值,打印其二维坐标
int max = m[0][0];//最大值初值设置为第一行第一列元素
int a = 0;
int b = 0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (m[i][j] > max) {
max = m[i][j];
a = i;
b = j;
}
}
}
System.out.println("数组最大值是:" + max);
System.out.println("最大值坐标是[" + a + "][" + b + "]");
}
}