Java二维数组的学习

一、二维数组的定义

1、第一种方式

    数据类型[ ][ ] 数组名 = new 数据类型[m][n] ;

        m:代表当前二维数组中有多少个一维数组

        n:代表每一个一维数组中的长度

        如:int [ ][ ] arr = new int [3][2];

    或:数据类型[ ]  数组名[ ] = new 数据类型[m][n];

        (int [ ] arr[ ] = new int [3] [2];)

    或:数据类型 数组名[ ][ ] = new 数据类型[m][n] ;

        (int arr[ ][ ] = new int [3] [2];)

2、第二种方式

    数据类型[][] 数组名 = new 数据类型[m][] ;

        m:一维数组的个数,其中每一个一维数组长度动态给定

        如:int[ ][ ] arr = new int[3][ ] ;

               arr[0] = new int[2] ;
       arr[1] = new int[3] ;

       arr[2] = new int[2] ;

3、第三种方式(静态初始化)

    数据类型[ ][ ] 数组名称 = {{元素1,元素2,···},{....}} ;

        如:int[ ][ ] arr = {{1,2,3},{4,5},{6}} ;

        此时定义了一个二维数组arr,该二维数组包含了三个一维数组,arr[0]包含3个元素,arr[1]包含2个元素,arr[2]包含1个元素,若输出System.out.println(arr[2][1]);编译能通过但运行时会抛出异常ArrayIndexOutOfBoundsException(数组角标越界异常),因为此时arr[2]只包含1个元素。

二、二维数组的遍历

    以一个具体的代码为例:

public class ArrayTest {
	
	public static void main(String[] args) {
		//定义一个二维数组,静态初始化
		int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
		
		//通过嵌套循环,外层循环遍历二维数组的长度(即一维数组的个数),内层循环遍历每个一维数组的元素个数
		for(int x = 0 ; x < arr.length ; x ++) {
			for(int y = 0 ; y < arr[x].length; y++) {
				System.out.print(arr[x][y]+" ");
			}
		}
		System.out.println("----------------------------");
		
		//最终版代码:定义一个遍历二维数组的功能
		printArray2(arr);
	}
	
	/**
	 * 两个明确:
	 * 	1)明确返回值类型:void
	 * 	2)明确参数类型:int[][] arr
	 */
	public static void printArray2(int[][] arr) {
		for(int x = 0 ; x < arr.length ; x ++) {
			for(int y = 0 ; y < arr[x].length ; y++) {
				System.err.print(arr[x][y]+" ");
			}
		}
	}
}
二维数组的遍历首先遍历二维数组的长度(arr.length),也就是一维数组的个数,其次遍历每个一维数组的每一个元素(arr[i].length),在这里一定要搞清楚。
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页