【发布时间】:2020-02-17 16:02:40
【问题描述】:
假设我有这样的对象:
public class Customer {
private Integer id;
private String country;
private Integer customerId;
private String name;
private String surname;
private Date dateOfBirth;
}
我有一个List<Customer>。我想用 Java 流拆分这样的列表,以便获得 ids List<Integer>、国家 List<String>、customerIds List<Integer> 等列表。
我知道我可以像制作 6 个流一样简单,例如:
List<Integer> idsList = customerList.stream()
.map(Customer::getId)
.collect(Collectors.toList());
但是在我拥有字段的情况下多次这样做似乎很乏味。我在考虑自定义收集器,但我想不出任何既整洁又高效的有用的东西。
【问题讨论】:
-
如何初始化 3 个列表并使用 customerList.foreach 并将每个成员添加到相关的列表中
-
可能很简单的
forEach添加到各自的列表会是更好的选择
标签: java java-8 java-stream