具有两个列表的 Java 8 流
2022-09-04 21:52:15
我有一个方法将2个列表作为参数,正如您在方法体中看到的那样,我想进行一些过滤并将结果返回给调用方。我想用lambda表达式将此代码转换为Java 8流,但我无法弄清楚。我最终为此创建了多个流,它击败了这种重构的目的(恕我直言)。我想知道的是,我如何以一种简单的方式将其重构为一个流?
public Set<CustomerTrack> getCustomerTracks(List<CusomerTrack> tracks, List<Customer> customers) {
Set<CustomerTrack> tracksToSave = new HashSet<>();
for (Customer customer : customers) {
if (customer.getTrack() == null) {
continue;
}
Long allowedTrackId = customer.getTrack().getId();
for (CustomerTrack track : tracks) {
if (Long.valueOf(track.getId()).equals(allowedTrackId)) {
tracksToSave.add(track);
}
}
}
return tracksToSave;
}