【问题标题】:How to convert List<Set<String>> to List<List<String>> in java?如何在 java 中将 List<Set<String>> 转换为 List<List<String>>?
【发布时间】:2022-01-05 23:02:32
【问题描述】:

我们如何在java中轻松地将List转换为List? 上下文:我遇到了这个问题,我生成了 List 而在函数返回中需要 List

【问题讨论】:

    标签: java list collections set


    【解决方案1】:

    您关心Sets 中的订单吗?如果你这样做了,你必须首先确保你没有将它们作为 Sets。如果您不这样做,您可以使用 Java 8+ 流 API:

    list.stream().map(ArrayList::new).collect(Collectors.toList());
    

    for 循环。

    【讨论】:

    • LinkedHashSet 维护顺序。
    • 没错,Set 的实现可能会保留顺序,但通常 Set 接口不保证保留顺序。
    【解决方案2】:

    要从 Set 转换为 List,您只需执行 new ArrayList&lt;&gt;(mySet)。所以你可以这样做:

    Set<String> set1 = new HashSet<>(Arrays.asList("a", "b"));
    Set<String> set2 = new HashSet<>(Arrays.asList("c", "d"));
    List<List<String>> result = new ArrayList<List<String>>();
    List<Set<String>> listOfSets = new ArrayList<>();
    listOfSets.add(set1);
    listOfSets.add(set2);
    for (Set<String> set : listOfSets) {
        result.add(new ArrayList<>(set));
    }
    System.out.println(result);
    

    输出:[[a, b], [c, d]]

    【讨论】:

    • List&lt;List&lt;String&gt;&gt; result = listOfSets.stream().map(ArrayList::new).collect(Collectors.toList());
    猜你喜欢
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2021-08-08
    • 2020-01-11
    • 2013-08-26
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多