在JavaSpring引导中将列表转换为分组列表

在JavaSpring引导中将列表转换为分组列表,java,list,spring-boot,Java,List,Spring Boot,我想用属性转换下面的列表,将类似的组分组,并使用JavaSpringBoot将子组值连接为下面的预期输出。这是我的密码 for (JuniorAreaSubgroup value : lstJuniorAreaSubgroup) { juniorAreaSubgroupMap.setJuniorArea(value.getJuniorArea()); lstSubgroup.add(lstJuniorAreaSubgroup.stream().filter

我想用属性转换下面的列表,将类似的组分组,并使用JavaSpringBoot将子组值连接为下面的预期输出。这是我的密码

    for (JuniorAreaSubgroup value : lstJuniorAreaSubgroup) {
        juniorAreaSubgroupMap.setJuniorArea(value.getJuniorArea());
        lstSubgroup.add(lstJuniorAreaSubgroup.stream().filter(value.getJuniorArea()) -> 
                String.join(",", value.getSubgroup()));
        juniorAreaSubgroupMap.setSubgroup(lstSubgroup);
        lstSubgroup.clear();
    }
-

预期产出:

[
{
    "group": "Tins",
    "subgroup": [“G13AA”, "G13AD”]
},
{
    "group": "Cans",
    "subgroup": [“G13DA”, "G13DB”, "G13DD”]
} 
]

非常感谢您的帮助。

您的数据看起来像JSON。本例将使用适当的Java对象设置数据:

public class Grouping {

    public class Person {
        String group;
        String subgroup;

        Person(String group, String subgroup){
            this.group = group;
            this.subgroup=subgroup;
        }
    }

    @Test
    public void test() {
        List<Person> list = new ArrayList<>();

        list.add(new Person("Tins", "G13AA"));
        list.add(new Person("Tins", "G13AD"));
        list.add(new Person("Cans", "G13DA"));
        list.add(new Person("Cans", "G13DB"));
        list.add(new Person("Cans", "G13DD"));

        Map<String, List<String>> result = list.stream()
              .collect(Collectors.groupingBy(p->p.group, Collectors.mapping(p->p.subgroup, Collectors.toList())));

        System.out.println(result);
    }

}

请将您的尝试作为起点发布。您好@Mick,我需要另外一种方法将G13DA值替换为G13,G23。您宁愿在构建数据(?)时这样做。
public class Grouping {

    public class Person {
        String group;
        String subgroup;

        Person(String group, String subgroup){
            this.group = group;
            this.subgroup=subgroup;
        }
    }

    @Test
    public void test() {
        List<Person> list = new ArrayList<>();

        list.add(new Person("Tins", "G13AA"));
        list.add(new Person("Tins", "G13AD"));
        list.add(new Person("Cans", "G13DA"));
        list.add(new Person("Cans", "G13DB"));
        list.add(new Person("Cans", "G13DD"));

        Map<String, List<String>> result = list.stream()
              .collect(Collectors.groupingBy(p->p.group, Collectors.mapping(p->p.subgroup, Collectors.toList())));

        System.out.println(result);
    }

}
{Cans=[G13DA, G13DB, G13DD], Tins=[G13AA, G13AD]}