二维数组

1、二维数组的理解

package f二维数组的理解;

/**
 * 			关于Java中的二维数组:
 * 				1、二维数组其实就是一个特殊的一维数组,其特殊在这个一维数组中的每个数组元素都是个一维数组
 * 				2、依次类推,三维数组是一个特殊的二维数组
 * 				   Java开发中最多使用一维数组,二维数组极少,三维数组几乎不用
 * 				3、二维数组的静态初始化
 * 					int[][] array = {{100,200},{1,2,3,4},{56,57,58,99},{45,23,56,99,88}};
 * 
 *
 */
public class ArrayTest {
	
	public static void main(String[] args) {
		
		//一维数组
		int[] a1 = {100,200,300};
		
		//二维数组
		int[][] a2 = {
				{100,200,300},
				{45,26},
				{1,2,3,4,5},
				{95,96,98,99}	
		};
		
		//二维数组的长度
		System.out.println("二维数组a2的长度为 "+a2.length);
		//二维数组中元素的长度
		System.out.println("二维数组a2中元素a2[0]的长度为 "+a2[0].length);
		System.out.println("二维数组a2中元素a2[1]的长度为 "+a2[1].length);
		System.out.println("二维数组a2中元素a2[2]的长度为 "+a2[2].length);
		System.out.println("二维数组a2中元素a2[3]的长度为 "+a2[3].length);
	}

}

2、二维数组的读和改

package g二维数组的读和改;

/**
 * 			二维数组的读和改			
 * 
 *
 */

public class ArrayTest {
	
	public static void main(String[] args) {
		
		int[][] a1 = {
				{1,2,3,4,5},
				{100,200,300},
				{88,99,77,65}
		};
		
		//取出二维数组a1的第一个元素
		System.out.println(a1[0]);//[I@ee7d9f1  -->说明二维数组中每个元素存的是一维数组的内存地址,如下:
		int[] a2 =a1[0];
		int value = a2[0];// --->所以value = a1[0][0]
		
		//取出具体的元素值
		System.out.println(a1[0][0]);//1  -->说明第一个0代表该a1数组0下标元素,第二个0代表第一个元素(第一个一维数组)的0下标元素
		System.out.println("取出第三个一维数组的第二个元素:"+a1[2][1]);
		
		//遍历整个二维数组
		for (int i = 0; i < a1.length; i++) {
			int[] 一维数组 = a1[i];
			for (int j = 0; j < a1[i].length; j++) {
				int is = a1[i][j];
				System.out.println("二维数组a1的a["+i+"]["+j+"]= "+is);
			}
			System.out.println("===============================>");
			
		}
		
		//改
		a1[1][0] = 122;//注意别越界
	}

}

3、二维数组作为方法参数

package h方法中的参数是二维数组;
/**
 * 
 * 				动态初始化二维数组和方法参数中的二维数组
 * 
 *
 */
public class ArrayTest {
	
	public static void main(String[] args) {
		
		//动态初始化二维数组
		int[][] a1 = new int[3][4];//创建一个三行四列的二维数组。三个一维数组,每个一维数组四个元素
		
		//遍历二维数组
		for (int i = 0; i < a1.length; i++) {
			int[] js = a1[i];
			for (int j = 0; j < js.length; j++) {
				System.out.print(js[j]+" ");
			}
			System.out.println();
		}
		System.out.println("===================>");
		
		//静态初始化二维数组
		int[][] a2 = {
				{1,2,3,4,5},
				{100,200,300},
				{99,88,77},
				{369,258}
		};
		printArray(a2);
		//不能printArray({{1,2,3,4,5},{100,200,300},{99,88,77},{369,258}});
		//但可以这样
		System.out.println("===================>");
		printArray(new int[][]{{1,2,3,4,5},{100,200,300},{99,88,77},{369,258}});
	}
	
	public static void printArray(int[][] array) {
		
		//遍历二维数组
				for (int i = 0; i < array.length; i++) {
					int[] js = array[i];
					for (int j = 0; j < js.length; j++) {
						System.out.print(js[j]+" ");
					}
					System.out.println();
				}
				
		
	}

}