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