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

