Как собрать два поля объекта в один список?
У меня есть объект товаров, который имеет два свойства: firstCategoryId
и secondCategoryId
. У меня есть список товаров, и я хочу получить все идентификаторы категорий (включая firstCategoryId и secondCategoryId).
Мое текущее решение:
List<Integer> categoryIdList = goodsList.stream().map(g->g.getFirstCategoryId()).collect(toList());
categoryIdList.addAll(goodsList.stream().map(g->g.getSecondCategoryId()).collect(toList()));
Есть ли более удобный способ получить все значения категорий в одном выражении?
Ответы
Ответ 1
Вы можете сделать это с помощью одного конвейера Stream
, используя flatMap
:
List<Integer> cats = goodsList.stream()
.flatMap(c->Stream.of(c.getFirstCategoryID(),c.getSecondCategoryID()))
.collect(Collectors.toList());