Java запрос ArrayList предопределенного объекта - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть ArrayList (inputList), который анализирует эти данные:

id,name,quantity
1,foo,10
2,bar,20
3,foo,10
4,bar,10
5,qwerty,1

Код:

...
List<FooRow> inputList = new ArrayList<FooRow>();
inputList = br.lines().map(mapToFooRow).collect(Collectors.toList());
...

public class FooRow{
private Integer id;
private String name;
private Integer value;
}

Я хочу создать коллекторы, которые возвращают мне список с количествомзначение, сгруппированное по имени:

name,value
foo,20
bar,30
qwerty,1

Как создать класс Collectors, чтобы сделать это в лямбда-выражении?Благодаря.

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете использовать Collectors.groupingBy и Collectors.summingInt:

Map<String, Integer> result =
    inputList.stream()
             .collect(Collectors.groupingBy(
                 FooRow::getName, Collectors.summingInt(FooRow::getValue)));
...