首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tuples2映射转换的javaslang列表

Tuples2映射转换的javaslang列表
EN

Stack Overflow用户
提问于 2017-04-06 14:27:32
回答 1查看 2K关注 0票数 7

使用javaslang2.1.0-alpha将Stream<Tuple2<T,U>>转换为Map<T,List<U>>的最惯用的方法是什么?

代码语言:javascript
复制
    // initial stream
    Stream.of(
            Tuple.of("foo", "x"),
            Tuple.of("foo", "y"),
            Tuple.of("bar", "x"),
            Tuple.of("bar", "y"),
            Tuple.of("bar", "z")
    )        

应成为:

代码语言:javascript
复制
    // end result
    HashMap.ofEntries(
            Tuple.of("foo", List.of("x","y")),
            Tuple.of("bar", List.of("x","y","z"))
    );
EN

回答 1

Stack Overflow用户

发布于 2017-04-06 22:36:18

@Opal是对的,foldLeft是从元组创建HashMap的方法。

在javaslang2.1.0-alpha中,我们还使用Multimap来表示类似于地图的数据结构中的元组。

代码语言:javascript
复制
// = HashMultimap[List]((foo, x), (foo, y), (bar, x), (bar, y), (bar, z))
Multimap<String, String> map =
        HashMultimap.withSeq().ofEntries(
                Tuple.of("foo", "x"),
                Tuple.of("foo", "y"),
                Tuple.of("bar", "x"),
                Tuple.of("bar", "y"),
                Tuple.of("bar", "z")
        );

// = Some(List(x, y))
map.get("foo");

(另见HashMultimap Javadoc)

根据地图的进一步处理方式,这可能会派上用场。

免责声明:我是Javaslang的创造者

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43258086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档