Java 在一个循环中打印锯齿数组列表

Java 在一个循环中打印锯齿数组列表,java,jagged-arrays,Java,Jagged Arrays,锯齿状阵列可以在一个回路中打印还是需要两个回路?需要两个回路;一个循环数组,另一个循环每个嵌套数组并打印相应的元素。您还可以简单地使用(内部使用循环): [[0],[0,0,0,0,0,0],[0,0,0],空] 通过使用Arrays.toString(),可以避免编写内部循环 但是你的代码实际上并没有更快。它仍然在引擎盖下使用for循环 void printRaggedArray(int[][]参差不齐){ for(int[] row: num) { System.out.println(

锯齿状阵列可以在一个回路中打印还是需要两个回路?

需要两个回路;一个循环数组,另一个循环每个嵌套数组并打印相应的元素。您还可以简单地使用(内部使用循环):

[[0],[0,0,0,0,0,0],[0,0,0],空]
通过使用
Arrays.toString()
,可以避免编写内部循环

但是你的代码实际上并没有更快。它仍然在引擎盖下使用for循环

void printRaggedArray(int[][]参差不齐){
for(int[] row: num) {
  System.out.println(Arrays.toString(row));
}
int-outer=0; int内部=0; 而(外部<不规则长度){ 如果(内部>=参差不齐[外部]。长度){ 内部=0; 外部++; 继续; } System.out.println[outer][inner++]; } }
这是可行的,但2个循环更好。这并不是更快,事实上它可能更慢。

public class Main{
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++];
    }
}
公共静态void main(字符串参数[]){ int-twoD[][]=新的int[4][]; twoD[0]=新整数[1]; twoD[1]=新的int[2]; twoD[2]=新整数[3]; twoD[3]=新整数[4]; 对于(int i=0;i<4;i++){ 对于(int j=0;j
2dimensions=2个嵌套循环。这不是数组列表,而是数组。@JunedAhsan我认为OP的意思是锯齿状的。这不适用于
deepToString
处理整数[]而不是整数[]。自动装箱不适用于阵列primitives@arshajii这取决于java版本argument@Jatin“如果元素
e
是基元类型的数组,则通过调用
array.toString(e)的适当重载将其转换为字符串as”
。如果元素
e
是引用类型的数组,则通过递归调用此方法将其转换为字符串。“@Cruncher为什么这么说?我相信它会在Java 5+中工作(Java 5中引入了
deepToString()
方法本身)。我应该说它回答了这个问题!正如你所说,没有人会想用它,虽然…哈哈,我不记得写了这个答案,但它肯定有点厚脸皮。它本质上只是实现一个内部循环counters@Ole因为你喜欢,我把它清理了很多 [[0], [0, 0, 0, 0, 0], [], [0, 0, 0], null]
for(int[] row: num) {
  System.out.println(Arrays.toString(row));
}
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++];
    }
}
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();
    }
  }
}