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));
}
}
