Преобразовать список в сгруппированный список в Java Spring Boot - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу преобразовать приведенный ниже список с атрибутами, чтобы сгруппировать аналогичную группу и объединить значения подгруппы, как показано ниже ожидаемого вывода, используя Java Spring Boot.Это мой код.

    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"
},
{
    "group": "Tins",
    "subgroup": "G13AD"
},
{
    "group": "Cans",
    "subgroup": "G13DA"
},
{
    "group": "Cans",
    "subgroup": "G13DB"
},
{
    "group": "Cans",
    "subgroup": "G13DD"
}
]

Ожидаемый результат:

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

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 18 февраля 2019

Ваши данные выглядят как 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);
    }

}

приведет к:

{Cans=[G13DA, G13DB, G13DD], Tins=[G13AA, G13AD]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...