如何在各种其他 ArrayList 中迭代 ArrayList?
How iterate an ArrayList inside various others ArrayLists?
我被告知可以在其他人内部创建“无限”ArrayList,例如在下面的代码中:
import java.util.ArrayList;
public class Main
{
public static void main(String[] args) {
ArrayList<ArrayList<ArrayList<ArrayList<ArrayList<Object>>>>> List = new ArrayList<ArrayList<ArrayList<ArrayList<ArrayList<Object>>>>>();
}
}
我想知道如何迭代它们(使用 foreach 或其他循环类型)
你可以尝试像复合一样遍历它:
public static void traverse(ArrayList<T> arg) {
arg.forEach(
(n) -> if (n instanceof ArrayList) {
traverse(n)
} else {
doStomething(n)
}
);
}
恕我直言,如果有人写了这样的结构 - 那是某种疯子。
但是,您仍然可以按照这种模式进行遍历:
@Test
public void test4() {
List<String> list1 = new ArrayList<>();
list1.add("abc");
list1.add("def");
List<List<String>> list2 = new ArrayList<>();
list2.add(list1);
list2.stream().flatMap(Collection::stream).forEach(System.out::println);
}
```
我被告知可以在其他人内部创建“无限”ArrayList,例如在下面的代码中:
import java.util.ArrayList;
public class Main
{
public static void main(String[] args) {
ArrayList<ArrayList<ArrayList<ArrayList<ArrayList<Object>>>>> List = new ArrayList<ArrayList<ArrayList<ArrayList<ArrayList<Object>>>>>();
}
}
我想知道如何迭代它们(使用 foreach 或其他循环类型)
你可以尝试像复合一样遍历它:
public static void traverse(ArrayList<T> arg) {
arg.forEach(
(n) -> if (n instanceof ArrayList) {
traverse(n)
} else {
doStomething(n)
}
);
}
恕我直言,如果有人写了这样的结构 - 那是某种疯子。 但是,您仍然可以按照这种模式进行遍历:
@Test
public void test4() {
List<String> list1 = new ArrayList<>();
list1.add("abc");
list1.add("def");
List<List<String>> list2 = new ArrayList<>();
list2.add(list1);
list2.stream().flatMap(Collection::stream).forEach(System.out::println);
}
```