我不认为它被称为“分组”,但我需要实现以下目标:我有课
class Person {
String name;
Set<String> groups;
}
我有一些人:
- 父亲 => {“工人”,“男人”}
- 母亲 => {“女人”}
- 儿子 => {"学生","男人"}
- 女儿 => {"学生","女人"}
因此,每个人都可以属于多个类别。我想得到以下映射:
"Worker" => {Father}
"Men" => {Father, Son}
"Student" => {Son, Daughter}
"Woman" => {Mother, Daughter}
现在我可以通过手动迭代每个人并将他们放到Map<String,List<Person>>
我正在尝试使用流(或 StreamEx)oneliner 找到更优雅的 wat,例如:
List<Persons> family= ...;
Map<String,List<Person>> groupped = family.stream().groupByMultipleAttributes(Person::getGroups)