[英]How to iterate over MultiDimensional Array in Java?
String twoD[][] = new String[2][2];
twoD[0][0] = "Hi";
twoD[1][0] = "Hi";
twoD[1][1] = "What's";
twoD[2][0] = "Hi";
twoD[2][1] = "What's";
twoD[2][2] = "Up?";
for (int row = 0; row < twoD.length; row++ ){
for(int col = 0; col < twoD[row].length; col++){
System.out.println(twoD[row][col] + "\t");
}
System.out.println();
}
你好
嗨,什么
你好,怎么了?
嗨null null
嗨什么是空的
嗨什么事了?
我想你想创建一个锯齿状的数组,你可以这样做
String[][] twoD = { { "Hi" }, { "Hi", "What's" }, { "Hi", "What's", "Up" } };
然后你可能想在你的循环中print
(而不是println
)
for (int row = 0; row < twoD.length; row++) {
for (int col = 0; col < twoD[row].length; col++) {
System.out.print(twoD[row][col] + " ");
}
System.out.println();
}
或者,使用现有代码,您可以在print
之前添加null
检查
if (twoD[row][col] != null) {
// ...
}
另一种答案是使用顺序流。
String twoD[][] = new String[3][3]; // not [2][2]
twoD[0][0] = "Hi";
twoD[1][0] = "Hi";
twoD[1][1] = "What's";
twoD[2][0] = "Hi";
twoD[2][1] = "What's";
twoD[2][2] = "Up?";
System.out.println(Arrays.stream(twoD)
.map(oneD -> Arrays.stream(oneD)
.filter(Objects::nonNull)
.collect(Collectors.joining(" ")))
.collect(Collectors.joining("\n")));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.