Java面向对象
Java异常
Java数组
Java常用类
Java集合
Java IO流
Java线程
Java反射
Socket编程
Java注解开发
Java GoF设计模式
HashMap
Java内存模型
Java线性表

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

}