簡體   English   中英

如何僅遍歷二維數組的第一行?

[英]How to iterate only through the first row of a 2d array?

我有一個初學者問題。

如何僅遍歷 Java 中二維數組的第一行?

例如,如果我有:

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

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

在 JAVA 中,二維數組表示1D array of 1D arrays 即每一行都是單獨的一維數組(因此它們可以有不同的大小)。

int[][] arr = new int[2][3]表示您創建了 2D arrays,每行23列。 行和列是零索引,因此要訪問第一行,您應該使用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}

簡單的:

第一個方括號用於 ¿ 您要查找的數組? {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 cicles 來迭代所有元素:

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

來源在這里

編輯 #2要僅對第一個數組進行迭代,請將第一個方括號刻錄為 [0]:

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

您可以為此目的使用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

另請參閱:在 java 8 中使用 Streams 而不是 for 循環

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM