Java中初始化2D数组
时间:2020-02-23 14:36:16 来源:igfitidea点击:
在本文中,我们将学习在Java中初始化二维数组。
数组是一种数据结构,用于收集类似类型的数据到 连续的内存空间
。
数组可以是单维或者多维的。
一个 array
有2个维度的称为 2D or two-dimensional array
。
有几种方法可以在Java中创建和初始化2D数组。
让我们看一些例子。
使用循环初始化2D数组
这是我们创建数组的最简单方法,并使用循环初始化每个索引。
public class Main { public static void main(String args[]) { int count = 0; //Creating 2D array int a[][] = new int[3][2]; for(int i=0; i<3; i++) { for(int j=0; j<2; j++) { a[i][j] = count++; //Initialize Array System.out.print(a[i][j]+" "); } System.out.println(); } } }
输出:
0 1 2 3 4 5
使用初始化程序初始化2D数组
我们可以使用初始化程序块同时创建数组的同时初始化数组。
请参阅下面的示例。
public class Main { public static void main(String args[]) { //Creating and Initializing 2D array int a[][] = {{0,1},{2,3},{4,5}}; for(int i=0; i<3; i++) { for(int j=0; j<2; j++) { System.out.print(a[i][j]+" "); } System.out.println(); } } }
输出
0 1 2 3 4 5
初始化可变列长度的二维数组
如果我们想创建一个包含可变长度变量长度列的数组,那么使用以下方法并使用for循环初始化。
请参阅下面的示例。
public class Main { public static void main(String args[]) { int count = 0; //Creating 2D array int a[][] = new int[3][]; //Setting variable column a[0] = new int[3]; a[1] = new int[4]; a[2] = new int[5]; for(int i = 0; i<a.length; i++) { for (int j = 0; j < a[i].length; j++) { a[i][j] = count++; System.out.print(a[i][j]+" "); } System.out.println(); } } }
输出
0 1 2 3 4 5 6 7 8 9 10 11
使用异构数据初始化2D数组
虽然数组用于收集类似类型的数据,但我们也可以存储不同类型的值。
请参阅下面的示例。
public class Main { public static void main(String args[]) { int count = 0; //Creating 2D array Object a[][] = new Object[3][]; //Setting variable column a[0] = new Integer[3]; a[1] = new String[4]; a[2] = new Float[5]; for(int i = 0; i<a.length; i++) { for (int j = 0; j < a[i].length; j++) { if(i == 1) a[i][j] = "A"; else if(i == 2) a[i][j] = (float)count; else a[i][j] = count++; System.out.print(a[i][j]+" "); } System.out.println(); } } }
输出
0 1 2 A A A A 3.0 3.0 3.0 3.0 3.0
使用带列的初始化器初始化二维数组
如果我们希望在创建数组的同时初始化变量Lenght列数组,那么我们在给定示例中所做的初始ilzer块。
public class Main { public static void main(String args[]) { int count = 0; //Creating 2D array int a[][] = new int[3][]; //Initializing each a[0] = new int[] { 1,2,3 }; a[1] = new int[] { 4,5,6,7}; a[2] = new int[] { 8,9,10,11,12 }; for(int i = 0; i<a.length; i++) { for (int j = 0; j < a[i].length; j++) { System.out.print(a[i][j]+" "); } System.out.println(); } } }
输出
1 2 3 4 5 6 7 8 9 10 11 12
使用反射API初始化2D阵列
Java在反射包中提供了一个类阵列,可用于创建数组。
其中 newInstance()
方法用于创建阵列的数组实例,该实例稍后初始化为for循环。
import java.lang.reflect.Array; public class Main { public static void main(String args[]) { int count = 0; //Creating 2D array int[][] a = (int[][]) Array.newInstance(int.class, 3, 2); for(int i = 0; i<a.length; i++) { for (int j = 0; j < a[i].length; j++) { a[i][j] = count++; System.out.print(a[i][j]+" "); } System.out.println(); } } }
输出
0 1 2 3 4 5
使用tocharArray()初始化2D数组
如果我们有一个字符数组并在同一时间初始化它,那么我们可以使用 toCharArray()
的方法 String
返回char数组的类。
请参阅下面的示例。
public class Main { public static void main(String args[]) { //Creating and Initializing 2D array char[][] ch = { "JAVA".toCharArray(), "PYTHON".toCharArray(), "REST".toCharArray() }; for(int i = 0; i<ch.length; i++) { for (int j = 0; j < ch[i].length; j++) { System.out.print(ch[i][j]+" "); } System.out.println(); } } }
输出:
J A V A P Y T H O N R E S T