gpt4 book ai didi

java - 将 arraylist 划分为 Map 存储桶

转载 作者:行者123 更新时间:2023-11-30 02:19:08 24 4
gpt4 key购买 nike

我有两个 String 类型的 ArrayList ArrayList<String> xListArrayList<String> yList我想根据 someAttribute 将一个列表划分为多个存储桶(对于下面的示例,假设它使用 .contains()。

   Map<String, List<String>> yBuckets = new HashMap<>();
yList.forEach(y -> yBuckets.compute(y.contains("I'm here"), (k,v) ->
(v == null ? new ArrayList<>() : v).add(y)));

但是我遇到了不兼容的类型错误(字符串无法转换为 boolean 值)。到目前为止,我从未真正使用过 Java 8,但它似乎对我想要的东西很有用,所以我想知道是否有人能够告诉我如何修复此代码。谢谢

最佳答案

如果您想使用 lambda,您可以使用 toMap 收集器之一:

https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html#mapping-java.util.function.Function-java.util.stream.Collector-

例如,按姓氏将名称列表分区到存储桶中:

    List<String> names = Arrays.asList("Steve Ray", "Bobby Ray", "Billy Bob", "Timmy Bob");
Map<String, List<String>> nameBuckets = names.stream().collect(
Collectors.groupingBy(str -> {return str.split(" ")[1];}, Collectors.toList()));

关于java - 将 arraylist 划分为 Map 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47359276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com