相关疑难解决方法(0)

用于Guava不可变集合的Java 8收集器?

我非常喜欢Java 8流和Guava的不可变集合,但我无法弄清楚如何将两者结合使用.

例如,如何实现将流结果收集到ImmutableMultimap中的Java 8 Collector

加分点:我希望能够提供键/值映射器,类似于Collectors.toMap()的工作方式.

java guava java-stream

21
推荐指数
3
解决办法
5591
查看次数

使用groupingBy创建一个以不可变列表为键的Map

说,我有一个叫做Project的课,

class Project {
    private String projectId;
    private String projectName;
}
Run Code Online (Sandbox Code Playgroud)

还有一个名为Employee的类,它有一个项目列表

class Employee {
    private String name;
    private List<Project> projects
}
Run Code Online (Sandbox Code Playgroud)

我还有一个Employee对象列表.现在,我需要创建一个Map,其中项目列表作为键,一组员工对象作为此列表中的值.我可以让它工作

Map<List<Project>, Set<Employee>> x =
        employees
        .stream
        .collect(Collectors.groupingBy(Employee::getProjects, Collectors.toSet()));
Run Code Online (Sandbox Code Playgroud)

但是,由于我使用List作为键,我想要格外小心并确保列表是不可变的.有没有办法实现这个目标?

谢谢.

java java-8

10
推荐指数
1
解决办法
935
查看次数

标签 统计

java ×2

guava ×1

java-8 ×1

java-stream ×1