Java二维数组
package com.wkcto.chapter03.demo01;
import java.util.Arrays;
/**
* 二维数组
* 数组的每个元素是一个一维数组, 即一维数组的数组
*
* @author 蛙课网
*
*/
public class Test09 {
public static void main(String[] args) {
int [] data1 = {1,2,3,4,5};
int [] data2 = {6,7,8};
int x = 10;
int y = 20;
int [] data3 = {x, y};
/*
* data1/data2/data3是三个数组名, 其实就是一个变量名, 它的数据类型是 int[] 类型
* []表示data1/data2/data3是数组, []前面的int表示数组元素的类型
* 数据类型[] 数组名 = new 类型[长度]
*/
//定义一个数组, 数组中存储data1, data2, data3这三个变量
int[] [] mydata = {data1, data2, data3};
//mydata是一个数组名, mydata前面的一个[]表示数组, []前面的int[]表示mydata数组中的元素类型
System.out.println( mydata.length ); //3
//遍历mydata数组中存储的整数
for( int i = 0 ; i<mydata.length; i++){
//mydata[0]是 data1, mydata[i]是一个一维数组名
// System.out.println( mydata[i] );
for( int j = 0 ; j < mydata[i].length ; j++){
System.out.print( mydata[i][j] + "\t" );
}
System.out.println();
}
//foreach遍历
for (int[] is : mydata) {
for (int xx : is) {
System.out.print( xx + "\t");
}
System.out.println();
}
//Arrays.deepToString()可以把多维数组中的元素转换为字符串
System.out.println( Arrays.deepToString(mydata));
}
}
package com.wkcto.chapter03.demo01;
import java.util.Arrays;
/**
* 二维数组的动态初始化及静态初始化
* @author 蛙课网
*
*/
public class Test10 {
public static void main(String[] args) {
//1)二维数组的动态初始化
//定义一个长度为5的二维数组
int[][] mydata = new int[5][];
//2)给二维数组的元素赋值, 二维数组的每个元素是一个一维数组
//二维数组元素中存储的内容是一维数组的引用
mydata[0] = new int[5];
mydata[1] = new int[]{1,3,5};
int [] data = {2,5,8};
mydata[2] = data;
//mydata[3]和mydata[4]默认初始化为null
//3)遍历二维数组
for(int i = 0 ; i<mydata.length; i++){
//判断mydata[i]这个一维数组是否为null
for( int j = 0 ; mydata[i] != null && j < mydata[i].length; j++){
System.out.print( mydata[i][j] + "\t");
}
System.out.println();
}
//4)在定义二维数组同时,可以指定一维数组的长度,系统会给一维 数组默认初始化
int[][] mydata2 = new int[5][4]; //二维数组的长度是5, 它的元素是一个长度为4的一维数组
//遍历
for (int[] is : mydata2) {
for (int xx : is) {
System.out.print( xx + "\t");
}
System.out.println();
}
//5)mydata2二维数组的每个元素存储的是一维数组的引用
mydata2[0] = data;
mydata2[1] = new int[]{4,5,6,7,8,9};
System.out.println( Arrays.deepToString(mydata2));
//6)二维数组的静态初始化
int[][]mydata3 = new int[][]{ data , new int[5] , new int[]{1,2,3,4} };
System.out.println( Arrays.deepToString(mydata3));
//可以简化为
int[][] mydata4 = {data, new int[5], new int[]{1,2,3,4}};
//还可以写为
int[][] mydata5 = { {1,2,3,4} , {5,6,7} , {8,9}};
System.out.println( Arrays.deepToString(mydata5));
}
}