gpt4 book ai didi

相当于 LINQ SelectMany() 的 Java Stream

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:36:45 25 4
gpt4 key购买 nike

什么是 Java 8 Stream相当于 LINQ 的 SelectMany

例如,在 C# 中,如果我有 Dictionary<string, List<Tag>> tags我想变成 IEnumerable<Tag> (字典中所有标签的平面枚举),我会做 tags.SelectMany(kvp => kvp.Value) .

是否有一个 Java 等价于 Map<String, List<Tag>>那会产生一个 Stream<Tag>

最佳答案

您正在寻找 flatMap map 中包含的所有值:

Map<String, List<Tag>> map = new HashMap<>();
Stream<Tag> stream = map.values().stream().flatMap(List::stream);

此代码首先检索 map 的所有值作为 Collection<List<Tag>> values() , 使用 stream() 从这个集合中创建一个 Stream ,然后平面映射每个 List<Tag>进入Stream方法引用List::stream .

关于相当于 LINQ SelectMany() 的 Java Stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35992083/

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