【问题标题】:How to iterate only through the first row of a 2d array?如何仅遍历二维数组的第一行?
【发布时间】:2021-06-03 12:02:00
【问题描述】:

我有一个初学者问题。

如何在 Java 中只遍历二维数组的第一行?

例如,如果我有:

int[][] array = {{5, 22, 30, 40, 30}, {96, 20, 30, 25, 25}};

如何只遍历{5, 22, 30, 40, 30}{96, 20, 30, 25, 25}

【问题讨论】:

    标签: java arrays loops multidimensional-array


    【解决方案1】:

    在 JAVA 中二维数组表示1D array of 1D arrays;即每一行都是单独的一维数组(因此它们可以有不同的大小)。

    int[][] arr = new int[2][3] 表示您创建了二维数组,每行包含2 行和3 列。行和列是零索引,因此要访问第一行,您应该使用0 索引。

    int[][] array = {{5, 22, 30, 40, 30}, {96, 20, 30, 25, 25}};
    
    System.out.println(Arrays.toString(array[0]));    // {5, 22, 30, 40, 30}
    System.out.println(Arrays.toString(array[1]));    // {96, 20, 30, 25, 25}
    

    【讨论】:

      【解决方案2】:

      简单:

      第一个方括号用于 ¿ 您要查找哪个数组? {5, 22, 30, 40, 30} [0] 或 {96, 20, 30, 25, 25} [1] ?

      然后,第二个方括号用于:¿您要查找数组中的哪个元素?要检索 {5, 22, 30, 40, 30} 中的 22 个,您应该使用 [0] [1]、[menaing First array] 和 [second element of array selected]。

      编辑

      您需要 2 个for cicle 来迭代所有元素:

      for (int row = 0; row < array.length; row++) {    
          for (int col = 0; col < array[row].length; col++) {
             System.Out.Println(array[row][col]);
          }
      }
      

      来源here

      编辑#2 要仅对第一个数组进行迭代,请将第一个方括号烧成 [0]:

      for (int col = 0; col < array[0].length; col++) {
             System.Out.Println(array[0][col]); // Iterating only the first array elements.
          }
      

      【讨论】:

        【解决方案3】:

        您可以为此使用Stream

        int[][] array = {{5, 22, 30, 40, 30}, {96, 20, 30, 25, 25}};
        
        System.out.println(Arrays.stream(array[0])
                .mapToObj(String::valueOf)
                .collect(Collectors.joining(" "))); //5 22 30 40 30
        
        System.out.println(Arrays.stream(array[1])
                .mapToObj(String::valueOf)
                .collect(Collectors.joining(" "))); //96 20 30 25 25
        

        另见:Using Streams instead of for loop in java 8

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-18
          • 1970-01-01
          • 1970-01-01
          • 2015-04-07
          • 2016-09-04
          相关资源
          最近更新 更多