java中的列表打印列表

java中的列表打印列表,java,list,Java,List,我有以下清单: [10, 20, [44, 55], [[777, 888]]] 我想打印如下(Index.Value): 我知道我的代码有问题。我们还有别的办法处理吗? 有人能帮我吗?当您处理外部列表的第三个元素时,将“2.”附加到s并将结果分配到s 然后,当处理外部列表的第4个元素时,将“3.”附加到s,并将结果分配给s,因此现在s包含“2.3.”,而不是应该传递给递归调用的所需“3.” 如果不给s赋值,只需将s+i+“传递给递归调用,就可以避免这种情况 改变 s = s + i + ".

我有以下清单:

[10, 20, [44, 55], [[777, 888]]]
我想打印如下(Index.Value):

我知道我的代码有问题。我们还有别的办法处理吗?
有人能帮我吗?

当您处理外部列表的第三个元素时,将“2.”附加到
s
并将结果分配到
s

然后,当处理外部列表的第4个元素时,将“3.”附加到
s
,并将结果分配给
s
,因此现在
s
包含“2.3.”,而不是应该传递给递归调用的所需“3.”

如果不给
s
赋值,只需将
s+i+“
传递给递归调用,就可以避免这种情况

改变

s = s + i + ".";
print((List<Object>)list.get(i),s);
完全纠正的方法:

static void print(List<Object> list, String s) {
    for (int i = 0; i < list.size(); i++) {
        if (list.get(i) instanceof Integer) {
            System.out.println(s + i + "." + list.get(i));
        } else {
            print((List<Object>)list.get(i),s + i + ".");
        }
    }
}
静态无效打印(列表,字符串s){
对于(int i=0;i
处理外部列表的第三个元素时,将“2.”附加到
s
并将结果分配给
s

然后,当处理外部列表的第4个元素时,将“3.”附加到
s
,并将结果分配给
s
,因此现在
s
包含“2.3.”,而不是应该传递给递归调用的所需“3.”

如果不给
s
赋值,只需将
s+i+“
传递给递归调用,就可以避免这种情况

改变

s = s + i + ".";
print((List<Object>)list.get(i),s);
完全纠正的方法:

static void print(List<Object> list, String s) {
    for (int i = 0; i < list.size(); i++) {
        if (list.get(i) instanceof Integer) {
            System.out.println(s + i + "." + list.get(i));
        } else {
            print((List<Object>)list.get(i),s + i + ".");
        }
    }
}
静态无效打印(列表,字符串s){
对于(int i=0;i
是否尝试使用调试器并查看代码中发生了什么?制作
list1
a
List
,然后迭代元素。在第一级,存储内部
列表的索引,并在打印时使用该索引。是否尝试使用调试器并查看代码中的情况?制作
list1
a
List
,然后迭代元素。在第一级,存储内部
列表的索引
,并在打印时使用该索引。我们还有别的办法处理吗?类似于在非常初始的方法调用时不传递字符串。@AbdulBasith您可以将初始调用包装在不接受字符串的第二个方法中-
静态无效打印(列表){print(列表“”);}
Awsome。我们还有别的办法处理吗?类似于在非常初始的方法调用时不传递字符串。@AbdulBasith您可以将初始调用包装在不接受字符串的第二个方法中-
静态无效打印(列表){print(列表“”);}
print((List<Object>)list.get(i),s + i + ".");
0.10
1.20
2.0.44
2.1.55
3.0.0.777
3.0.1.888
static void print(List<Object> list, String s) {
    for (int i = 0; i < list.size(); i++) {
        if (list.get(i) instanceof Integer) {
            System.out.println(s + i + "." + list.get(i));
        } else {
            print((List<Object>)list.get(i),s + i + ".");
        }
    }
}