Java流和分组:将对象放入多个组[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java流和分组:将对象放入多个组[重复]相关的知识,希望对你有一定的参考价值。

我不认为这称为“分组”,但我需要达到以下条件:我有课

class Person { String name; Set<String> groups; }

我有一些人:

    父亲=> {“工人”,“男子”}
  1. 母亲=> {“女人”}
  2. Son => {“ Student”,“ Men”}
  3. 女儿=> {“学生”,“女人”}
  • 因此,每个人都可以属于多个类别。我想获得以下映射:

    "Worker" => {Father} "Men" => {Father, Son} "Student" => {Son, Daughter} "Woman" => {Mother, Daughter}

    现在我可以通过手动遍历每个人并将其放到Map<String,List<Person>>来完成此操作>

    我正在尝试找到一种更优雅的wat来使用流(或StreamEx)oneliner进行操作,例如:

    List<Persons> family= ...; Map<String,List<Person>> groupped = family.stream().groupByMultipleAttributes(Person::getGroups)

    我不认为这叫做“分组”,但我需要达到以下条件:我有类Person Person {字符串名;设置

    组; }我有一些人:父亲=> {“工人”,“ ...

  • 答案
    您可以生成所有关联的组和Person对,然后将它们与groupingBy一起收集到Map中:

    以上是关于Java流和分组:将对象放入多个组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

    将多个分组查询组合成单个查询

    有没有办法将2个非常相似的代码片段组合成一个函数并重复?

    将javascript数组中的重复值分组在一起,然后按值名称升序对这些组进行排序

    如何将应用程序对象放入片段类

    按数组中的多个属性对对象进行分组,然后将它们的值相加

    TERSUS画画一样开发软件 集合类元件介绍-多个对象处理元件2