如何迭代两个不同的对象列表,并根据另一个列表中存在的元素修改一个列表的对象属性



我正在尝试根据另一个列表中的元素过滤现有对象列表。现在,如果两个元素都匹配,我需要修改其中一个列表中的对象属性。如何在Java 8中实现这一点?

public class Slot {
    @DateTimeFormat(iso = ISO.DATE_TIME)
    private Date startDate;
    private Status status;
}
List<java.util.Date> dateList;
List<Slot> slotList; 

所以基本上如果slotList中存在dateList元素,我想修改状态属性。这可以使用传统的循环来完成,但我正在寻找一种高效的 java 8 方式。

slotList
  // find slots with dates that are in the datelist 
  .filter(slot -> dateList.contains(slot.getDate()))
  //  update each slot that was found via the above predicate
  .forEach(slot -> slot.setStatus("new status"));

最新更新