Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待
4999元包邮
去购买 >
经典案例实现-点名器
运行代码,随机打印班级同学名字
//1.数组存储姓名,用String数据类型
String[] names={"杰克","戴维琼斯","伊丽莎白","爱丽丝"};
//2.遍历数组,打印出所有姓名
for(int i=0;i
System.out.println(names[i]);
}
//3.随机出一个人名
//利用随机数,生成一个证书,作为索引,到数组中查找对应的元素
Random ran=new Random();
//随机数的范围是[0,names.length-1]
int index=ran.nextInt(names.length); //括号中填写的最大数是获取不到的,因为nextInt获取的范围是左闭右开区间
System.out.println(names[index]);
二维数组
二维数组可以看成以数组为元素的数组。
其实多维数组不仅仅只有二维数组,还有三维数组,四维数组..., 但是三维以上很少见到,所以大家重点了解二维数组即可。
举例
int [][] a = {{1,2},{3,4,0,9},{5,6,7}};
初始化
动态初始化
数组定义与为数组元素分配空间和赋值的操作分开进行
数据类型[][] 数组名 = new 数据类型[一维][二维];
注意:这种初始化方式,每一个内层的二位数组长度相同
int[][] a=new int[3][2];
a[0][0] = 1;
a[0][1] = 2;
数据类型[][] 数组名 = new 数据类型[一维][];
内层数组需要我们自己去创建(下面可以用一维数组的创建方式)
数组名[一维数组索引值] = new 数据类型[二维];
int[][] a=new int[3][];
arr[0]=new int[2];
arr[1]=new int[]{3,4,5,6};
arr[2]=new int[]{7,8,9};
arr[0][0] = 1;
arr[0][1] = 2;
静态初始化
在定义数组的同时就为数组元素分配空间并赋值
数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
数据类型[][] 数组名 = {{...},{...},{...}}; --简化写法
int[][] arr1=new int[][]{{5,4,8},{3,8},{1}};
char[][] arr2={{'a'},{'b','c'}};
遍历方式
双重循环实现多维数组的遍历
//普通for循环嵌套增强for循环
for(int i=0;i<=arr1.length-1;i++){
for(int j:arr1[i]){
System.out.println(j);
}
}
//增强 for循环嵌套普通for循环
for(int[] arr:arr1){
for(int i=0;i<=arr.length-1;i++){
System.out.println(arr[i]);
}
}
//普通for嵌套普通for循环
...
//增强for嵌套增强for循环
...
Arrays中提供操作多维数组的方法:
static boolean deepEquals(Object[] a1, Object[] a2) 如果两个指定的数组彼此 深度相等 ,则返回 true 。
static String deepToString(Object[] a) 返回指定数组的“深度内容”的字符串表示形式。
double[][] arr1= new double[][] {{1.0,2.0},{3.0,4.0,5.0},{6.0}};
double[][] arr2= new double[][] {{1.0,2.0},{3.0,4.0,5.0},{6.0}};
System.out.println(Arrays.deepToString(arr1)); //[[1.0, 2.0], [3.0, 4.0, 5.0], [6.0]]
System.out.println(Arrays.deepEquals(arr1, arr2)); //true
加VX了解点我扫码领取
学习更多知识,请加入QQ群:1080355292,入群暗号(33)