二维数组初始化方式有哪些
一、引入:本质上全部都是一维数组
二、基本代码
public class TestArray15{ public static void main(String[] args){ //定义一个二维数组: int[][] arr = new int[3][];//本质上定义了一个一维数组,长度为3 int[] a1 = {1,2,3}; arr[0] = a1; arr[1] = new int[]{4,5,6,7}; arr[2] = new int[]{9,10}; } }
对应内存:
三、四种遍历方式
public class TestArray15{ public static void main(String[] args){ //定义一个二维数组: int[][] arr = new int[3][];//本质上定义了一个一维数组,长度为3 int[] a1 = {1,2,3}; arr[0] = a1; arr[1] = new int[]{4,5,6,7}; arr[2] = new int[]{9,10}; //读取6这个元素: //System.out.println(arr[1][2]); //对二维数组遍历: //方式1:外层普通for循环+内层普通for循环: for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++){ System.out.print(arr[i][j]+"\t"); } System.out.println(); } //方式2:外层普通for循环+内层增强for循环: for(int i=0;i<arr.length;i++){ for(int num:arr[i]){ System.out.print(num+"\t"); } System.out.println(); } //方式3:外层增强for循环+内层增强for循环: for(int[] a:arr){ for(int num:a){ System.out.print(num+"\t"); } System.out.println(); } //方式4:外层增强for循环+内层普通for循环: for(int[] a:arr){ for(int i=0;i<a.length;i++){ System.out.print(a[i]+"\t"); } System.out.println(); } } }
四、二维数组的初始化方式
数组的初始化方式总共有三种:静态初始化、动态初始化、默认初始化。
静态初始化
除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
eg:
int[][] arr = {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
int[][] arr =new int[][] {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
动态初始化
数组定义与为数组元素分配空间并赋值的操作分开进行。
eg:
int[][] arr = new int[3][]; //本质上定义了一维数组长度为3,每个“格子”中放入的是一个数组
arr[0] = new int[]{1,2};
arr[1] = new int[]{3,4,5,6};
arr[2] = new int[]{34,45,56};
eg:
int[][] arr = new int[3][2];
public class TestArray16{ public static void main(String[] args){ int[][] arr = new int[3][2]; //本质上:定义一维数组,长度为3,每个数组“格子”中,有一个默认的长度为2的数组: arr[1] = new int[]{1,2,3,4}; //数组遍历: for(int[] a:arr){ for(int num:a){ System.out.print(num+"\t"); } System.out.println(); } } }
默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
本文地址:百科问答频道 https://www.neebe.cn/wenda/886415.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!