Java基础-二维数组

309 阅读2分钟

二维数组:就是元素为一维数组的元素,二维数组就以数组为元素的数组 理解二维数组,首先要先理解一维数组是什么。一维数组是个容器,存储相同数据类型的容器(这里不再做一位数组的具体介绍)。二维数组就是用来存储一维数组的数组,一维数组的存储数据类型是基本数据类型和引用数据类型,二维数组的存储数据类型是引用数据类型(一维数组是引用数据类型)。也就是:二维数组是存储一维数组的数组,二维数组里面的元素都是数组,二维数组来存储一维数组。

package Java基础05_二维数组;
/*
 * 格式:
 *        数据类型[][] 数组名=new 数据类型[m][n];
 *        扩展:数据类型[] 数组名[] = new 数据类型[m][n];
 *        m:表示这个二维数组有多少个一维数组
 *        n:表示数组中有多少个元素
 */
public class Array2Demo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String[][] strs=new String[3][4];
		/*
		 * strs[0]:表示的是第一个一维数组,换句话说就是第一组
		 * strs[0][1]:表示的是第一个一维数组的第二个元素
		 */
		strs[0][0]="吴亦凡";
		strs[1][1]="张艺兴";
		strs[2][2]="黄子韬";
		for(int i=0;i<strs[0].length;i++) {
			System.out.print(strs[0][i]+",");//吴亦凡,null,null,null,
		}
		System.out.println();
		/*
		 * 格式二:
		 *           数据类型[][] 数组名=new 数据类型[m][]; 
		 */
		String[][] strs2=new String[3][];
		//动态的为每一个一维数组分内存工具
		strs2[0]=new String[2];//为二维数组中的一维数据分配2个内存空间
		strs2[1]=new String[4];
		strs2[2]=new String[1];
		System.out.print(strs2[0].length);//2
		System.out.println();
		strs2[0][0]="鹿晗";
		strs2[0][1]="关晓彤";
		for(int i=0;i<strs2[0].length;i++) {
			System.out.print(strs2[0][i]);//鹿晗关晓彤
		}
		System.out.println();
		/*
		 * 格式三:
		 * 基本格式:
		 *               数据类型[][] 数组名=new 数据类型[][]{{元素1,元素2,...},{元素1,元素2,.......}};
		 *         简化格式:
		 *              数据类型[][] 数组名={{元素1,元素2,...},{元素1,元素2,.......}};
		 *              
		 */
		String[][] strs3= {{"张三","李四"},{"王五","赵六"},{"钱七","孙八"}};
		String str=strs3[1][0];//用的是索引值
		System.out.println(str);//王五
		System.out.println("--------------------------------");
		System.out.println("二维数组的遍历");
		for(int i=0;i<strs3.length;i++) {
			System.out.print("i为:"+i);
			for(int j=0;j<strs3[i].length;j++) {
				System.out.print(strs3[i][j]);//基本数据:i为:0张三李四i为:1王五赵六i为:2钱七孙八
			}
		}
		System.out.println();
	}
}