【发布时间】:2021-04-16 10:08:47
【问题描述】:
我有两个课程会议和访客。
关系如下:
class Meeting {
private LocalDate date;
private List<Guest> guests;
}
我需要使用流按日期和来自美国的客人的地点安排一次会议。
我有列表,我已经完成了下一个:
List<Meeting> meetings = new ArrayList<>();
public Meeting getByDay(LocalDate date) {
List<Guest> guests = getGuestsByDate(date).stream()
.filter(guest-> guest.getCountry().equals("USA"))
.collect(Collectors.toList());
return new Meeting(date, guests);
}
但现在我需要使用自定义收集器重构我的代码,它会返回会议。 我读到它需要实现 Collector 接口或 Collector.of() 方法,但在我的情况下它必须如何?如有任何建议,我将不胜感激。
【问题讨论】:
-
getGuestsByDate(date)了解其实现会更有趣。 -
.collect(Collectors.toList())→.collect(Collectors.collectingAndThen(Collectors.toList(), l->new Meeting(date,l)))
标签: java java-stream collectors