2010-04-02 31 views
3

如何将数组存储在单个数组中? 例如我有四个不同的数组,我想将它存储在单个数组中int storeAllArray [],当我打电话给storeAllArray [1],我会得到这个输出[11,65,4,3,2,9,7]而不是单个元素?如何将数组存储在单个数组中

int array1 [] = {1,2,3,4,5,100,200,400}; 
int array2 [] = {2,6,5,7,2,5,10}; 
int array3 [] = {11,65,4,3,2,9,7}; 
int array4 [] = {111,33,22,55,77}; 

int storeAllArray [] = {array1,array2,array3,array2} //我希望所有的阵列中的存储阵列上

for (int i=0; i<storeAllArray; i++){ 
    System.out.println(storeAllArray.get[0]); // e.g. will produce --> 1,2,3,4,5,100,200,400 , how can I do this? 
} 

编辑: 我怎样才能得到输出这样?

System.out.println(storeAllArray [0]) --> [1,2,3,4,5,100,200,400]; 
    System.out.println(storeAllArray [1]) --> [2,6,5,7,2,5,10]; 
    System.out.println(storeAllArray [2]) --> [11,65,4,3,2,9,7]; 
    System.out.println(storeAllArray [2]) --> [111,33,22,55,77]; 
+0

的可能重复的[如何弄平2D阵列到一维数组?](http://stackoverflow.com/questions/2569279/how-to-flatten-2d-array-to-1d-array) – givanse 2013-12-19 16:23:47

+0

@givanse不得不在这里不同意。您所关联的问题是关于如何将二维数组转换为一维数组,当这个问题真的在询问有关制作二维数组的问题时。 – 2013-12-19 16:48:12

回答

6
int array1 [] = {1,2,3,4,5,100,200,400}; 
int array2 [] = {2,6,5,7,2,5,10}; 
int array3 [] = {11,65,4,3,2,9,7}; 
int array4 [] = {111,33,22,55,77}; 
int[] storeAllArray [] = {array1,array2,array3,array4}; 

for (int[] array : storeAllArray) { 
    System.out.println(Arrays.toString(array)); 
} 

在Java 5中,该打印

[1, 2, 3, 4, 5, 100, 200, 400] 
[2, 6, 5, 7, 2, 5, 10] 
[11, 65, 4, 3, 2, 9, 7] 
[111, 33, 22, 55, 77] 

在Java 5之前,您应该使用

System.out.println(Arrays.asList(array)); 
+0

谢谢Peter :-) – Jessy 2010-04-02 12:26:13

+0

@Jessy你有没有试过在Java 5或更高版本中使用'Arrays.asList(array)'?这是行不通的 - 使用'Arrays.toString(array)'代替。 – 2010-04-02 13:41:41

1

如果我理解你的问题,你想“扁平化”这些数组为一个数组。用Java和其他语言查看rosettacode.org这样的例子。

0

使用以下语法

int[][] storeAllArray = {array1, array2, array3, array4}; 
0

要访问你需要做的是这样选择的数组的单个元素:

storeAllArray[i][j] 
1
int array1[] = { 1, 2, 3, 4, 5, 100, 200, 400 }; 
    int array2[] = { 2, 6, 5, 7, 2, 5, 10 }; 
    int array3[] = { 11, 65, 4, 3, 2, 9, 7 }; 
    int array4[] = { 111, 33, 22, 55, 77 }; 

    int[][] storeAllArray = new int[][] { array1, array2, array3, array2 }; 

    for (int j : storeAllArray[0]) { 
     System.out.print(j + ", "); 
    } 
0

创建阵列的阵列:

int[] array1 = {1,2,3,4,5,100,200,400}; 
    int[] array2 = {2,6,5,7,2,5,10}; 
    int[] array3 = {11,65,4,3,2,9,7}; 
    int[] array4 = {111,33,22,55,77}; 

    int[][] allArrays = { 
     array1, array2, array3, array4 
    }; 

    System.out.println(java.util.Arrays.toString(allArrays[0])); 
    // prints "[1, 2, 3, 4, 5, 100, 200, 400]" 
0

没有这样做的必要。 您可以使用二维数组作为作业。 确保行长度应该等于最大长度的数组。

int a[]={1,2,3,4,5,6}; 
    int b[]={4,8,3,6,4,5}; 
    int c[][]=new int[2][6];//here 2 refers to the no. of arrays and 6 refers to number of elements in each array