簡體   English   中英

如何在其他各種 ArrayList 中迭代 ArrayList?

[英]How iterate an ArrayList inside various others ArrayLists?

我被告知可以在其他內部創建“無限”ArrayLists,例如在下面的代碼中:

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);
    }
```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM