Java 在一个循环中打印锯齿数组列表
锯齿状阵列可以在一个回路中打印还是需要两个回路?需要两个回路;一个循环数组,另一个循环每个嵌套数组并打印相应的元素。您还可以简单地使用(内部使用循环): [[0],[0,0,0,0,0,0],[0,0,0],空]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(
通过使用
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();
}
}
}