【问题标题】:How to store arrays in single array如何将数组存储在单个数组中
【发布时间】:2010-04-02 12:01:52
【问题描述】:

如何将数组存储在单个数组中? 例如我有四个不同的数组,我想将它存储在单个数组 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];

【问题讨论】:

  • @givanse 不得不在这里不同意。您链接的问题是关于将 2D 数组转换为 1D 数组,而这个问题实际上是在询问有关制作 2D 数组的问题。

标签: java arrays


【解决方案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 [] = {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));

【讨论】:

  • @Jessy 你有没有尝试过将Arrays.asList(array) 与Java 5 或更高版本一起使用?那行不通 - 请改用Arrays.toString(array)
【解决方案2】:

如果我理解您的问题,您希望将这些数组“展平”为一个数组。在 Java 和其他语言中查看 rosettacode.org 中的此类示例。

【讨论】:

    【解决方案3】:
    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 + ", ");
        }
    

    【讨论】:

      【解决方案4】:

      要访问所选数组的单个元素,您需要执行以下操作:

      storeAllArray[i][j]
      

      【讨论】:

        【解决方案5】:

        使用以下语法

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

        【讨论】:

          【解决方案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[][] allArrays = { 
                  array1, array2, array3, array4
              };
          
              System.out.println(java.util.Arrays.toString(allArrays[0]));
              // prints "[1, 2, 3, 4, 5, 100, 200, 400]"
          

          【讨论】:

            【解决方案7】:

            没有必要这样做。 您可以使用二维数组来完成这项工作。 确保行长度应等于最大长度的数组。

                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
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-07-26
              • 1970-01-01
              • 2017-07-05
              • 2023-03-23
              • 2015-07-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多