当前位置: 首页 > 知识库问答 >
问题:

如何在Java8中使用stream将几个字段收集到一个列表中?

鲁涵映
2023-03-14

例如,我有一个类person包含name和surname字段。

我想从列表中收集一个字符串列表(名字和姓氏都在一起),但似乎无法对每个列表使用两次map或无法对每个列表使用两次stream。

persons.stream()
   .map(Person::getName)
   .collect(Collectors.toSet())
   .stream().map(Person::getSurname) 
   .collect(Collectors.toList())

我做错了什么?

共有1个答案

董高逸
2023-03-14

要在同一列表中同时获取姓名和姓氏,可以执行以下操作:

List<String> set = persons.stream()
  .flatMap(p -> Stream.of(p.getName(),p.getSurname()))
  .collect(Collectors.toList());
 类似资料: