我非常喜欢Java 8流和Guava的不可变集合,但我无法弄清楚如何将两者结合使用.
例如,如何实现将流结果收集到ImmutableMultimap中的Java 8 Collector?
加分点:我希望能够提供键/值映射器,类似于Collectors.toMap()的工作方式.
说,我有一个叫做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作为键,我想要格外小心并确保列表是不可变的.有没有办法实现这个目标?
谢谢.