[英]Iterating through a 2D array with the second dimension having different lengths
我有一個2D數組,其中需要用戶輸入以創建第一個尺寸長度,然后循環獲取第二個尺寸長度。 例如:如果用戶為第一個維度輸入4,則它將循環遍歷4次並獲得第二個維度長度,該長度可能為2、3、2、4。 我不確定如何才能有效地解決這個問題...
實際上,您不必迭代內部數組,只需要做的就是迭代外部數組並獲取每個內部數組的length屬性。 您可以使用簡單的for
循環來做到這一點:
int[] arrayLengths = new int[outerArray.length];
for (int i = 0; i < outerArray.length; i++) {
arrayLengths[i] = outerArray[i].length;
}
或者,如果您覺得很花哨,可以使用streams :
int[] arrayLengths = Arrays.stream(outerArray)
.mapToInt(innerArray -> innerArray.length)
.toArray();
玩這個代碼
import java.util.Arrays;
import java.util.Scanner;
public class MyClass {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter number of Arrays that 2D Array( Arrays of Arrays) should contain:");
int len = sc.nextInt();
int [][]arr2D = new int[len][];
for(int i=0; i<len; i++){
System.out.println("Enter length for Array at index "+i);
int innerlen = sc.nextInt();
arr2D[i] = new int[innerlen];
}
System.out.println(Arrays.deepToString(arr2D));
}
}
產量
Enter number of Arrays that 2D Array( Arrays of Arrays) should contain:
5
Enter length for Array at index 0
3
Enter length for Array at index 1
4
Enter length for Array at index 2
5
Enter length for Array at index 3
2
Enter length for Array at index 4
1
[[0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0], [0]]
index 01234
0|--- <- second dimension length tells how many element array at this index contains
1|----
2|-----
3|--
4|-
^
| first dimension length tells how many arrays are allowed in array of array
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.