int[ ][ ] num=new int[5][ ];
num[0]=new int[1];
num[1]=new int[5];
num[2]=new int[];
num[3]=new int[3];
鋸齒陣列可以打印在一個循環中還是需要兩個循環?在一個循環中打印鋸齒陣列表
int[ ][ ] num=new int[5][ ];
num[0]=new int[1];
num[1]=new int[5];
num[2]=new int[];
num[3]=new int[3];
鋸齒陣列可以打印在一個循環中還是需要兩個循環?在一個循環中打印鋸齒陣列表
需要兩個循環;一個用於循環數組數組,另一個用於遍歷每個嵌套數組並打印相應的元素。你也可以簡單地使用Arrays.deepToString()
(使用循環內部):
int[][] num = new int[5][];
num[0] = new int[1];
num[1] = new int[5];
num[2] = new int[0];
num[3] = new int[3];
System.out.println(Arrays.deepToString(num));
[[0], [0, 0, 0, 0, 0], [], [0, 0, 0], null]
你可以通過避免使用Arrays.toString()
寫內環。
for(int[] row: num) {
System.out.println(Arrays.toString(row));
}
但是你的代碼實際上並不快。它仍然使用引擎蓋下的for循環。
void printRaggedArray(int[][] ragged) {
int outer = 0;
int inner = 0;
while(outer < ragged.length) {
if(inner >= ragged[outer].length) {
inner=0;
outer++;
continue;
}
System.out.println[outer][inner++];
}
}
這可行,但2迴路更好。這不會更快,實際上它可能會更慢。
public class Main {
public static void main(String args[]) {
int twoD[][] = new int[4][];
twoD[0] = new int[1];
twoD[1] = new int[2];
twoD[2] = new int[3];
twoD[3] = new int[4];
for (int i = 0; i < 4; i++){
for (int j = 0; j < i + 1; j++) {
twoD[i][j] = i + j;
}
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j < i + 1; j++)
System.out.print(twoD[i][j] + " ");
System.out.println();
}
}
}
2維= 2個嵌套循環。 –
這不是一個數組列表,它是一個數組。 – arshajii
@JunedAhsan我認爲OP意味着鋸齒。 –