当前位置:  开发笔记 > 编程语言 > 正文

Java8 lambda将List转换为Maps的Map

如何解决《Java8lambda将List转换为Maps的Map》经验,为你挑选了1个好方法。

是否有可能转换ListMap>一个lambda表达式?

public class Entry {
    Employee employee;
    LocalDate date;
}

到目前为止,我想出了类似的东西:

entries.stream().collect(Collectors.toMap(Collectors.groupingBy(Entry::getEmployee), Collectors.groupingBy(Entry::getDate), Function.identity()));

但这会产生编译错误:

no suitable method found for 
toMap(java.util.stream.Collector>>??,java.util.stream.Co??llector>>,
java.util.func??tion.Function) 

谢谢



1> shmosel..:

假设Entry有getter和Employeeoverrides hashCode()并且equals():

Map> result = entries.stream()
        .collect(Collectors.groupingBy(Entry::getEmployee,
                Collectors.toMap(Entry::getDate, Function.identity())));

请注意,如果员工有重复日期,这将抛出异常.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有