如何将一个对象的两个字段收集到同一个列表中?

2022-09-02 12:31:07

我有一个商品对象,它有两个属性:和。我有一个商品列表,我想获取所有类别 Id(包括 firstCategoryId 和 secondCategoryId)。firstCategoryIdsecondCategoryId

我目前的解决方案是:

List<Integer> categoryIdList = goodsList.stream().map(g->g.getFirstCategoryId()).collect(toList());
categoryIdList.addAll(goodsList.stream().map(g->g.getSecondCategoryId()).collect(toList()));

有没有一种更方便的方式可以在单个语句中获取所有类别Id?


答案 1

您可以使用以下方法使用单个管道执行此操作:StreamflatMap

List<Integer> cats = goodsList.stream()
                              .flatMap(c->Stream.of(c.getFirstCategoryID(),c.getSecondCategoryID()))
                              .collect(Collectors.toList());

答案 2

推荐