-4

我的问题有点简单,但我无法理解它(java 中的新问题)。

我有一个清单,我想打印它。

现在的问题是列表的某些元素可以是列表本身。

例如:

["foo",1,2,[22,23],[1,[22,[23]]] ... ]

我想以深度方式打印它,这意味着输出是:

"foo", 1,2,22,23, 1,22,23..

我如何在java中做到这一点

4

2 回答 2

1

递归执行。伪代码:

function printRecursively (list):
    for item in list:
        if item is Array:
            printRecursively(item)
        else:
            printItem(item)
于 2013-05-31T17:50:22.783 回答
1

您可以通过检查当前元素是否再次是列表并使用toStringjava 中每个对象都具有的 - 方法来递归地执行此操作。

public void printList(List<Object> a)
{
    for (Iterator<Object> it = a.iterator(); it.hasNext();) {
        Object item = it.next();
        if (item instanceof List) printList((List<Object>) item);
        else System.out.print(item + ", ");
    }
}
于 2013-05-31T17:58:27.137 回答