簡體   English   中英

在 Java 中將 Set of Set 轉換為 List of List

[英]Convert Set of Set to List of List in Java

List<List<Integer>> lst = new ArrayList<List<>>();

假設我有上面聲明的列表列表,名稱為 lst 並且我有一組下面聲明的集合元素變量。 如何將此集合的元素放入 lst?

Set<Set<Integer>> set = new HashSet<Set<>>();

假設您有一組集合:

Set<Set<Integer>> setOfSets = new HashSet<>();

將其轉換為列表列表:

List<List<Integer>> listOfLists = new ArrayList<>();

請執行下列操作:

for (Set<Integer> set : setOfSets) {
    listOfLists.add(new ArrayList<>(set));
}

當您將任何集合傳遞給 ArrayList 構造函數時,它會創建一個包含該集合中所有元素的新 ArrayList。 換句話說, new ArrayList(set)類似於list = new ArrayList()然后list.addAll(set)

使用Java 8個功能:

Set<Set<Integer>> data = new HashSet<>();

List<List<Integer>> result = data.stream()
                                 .map(ArrayList::new)
                                 .collect(Collectors.toList());

例子:

Set<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);

Set<Integer> set2 = new HashSet<>();
set2.add(4);
set2.add(5);
set2.add(6);

data.add(set1);
data.add(set2);

List<List<Integer>> result = data.stream()
                                 .map(ArrayList::new)
                                 .collect(Collectors.toList());

打印結果:

[[1, 2, 3], [4, 5, 6]] // list of lists

暫無
暫無

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

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