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

时间:2019-01-30 09:41:38

标签: java

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

public class Slot {
    @DateTimeFormat(iso = ISO.DATE_TIME)
    private Date startDate;
    private Status status;
}

List<java.util.Date> dateList;
List<Slot> slotList; 

因此,基本上,如果dateList中包含slotList的元素,我想修改status属性。可以使用传统循环来完成,但是我正在寻找一种有效的Java 8方式。

1 个答案:

答案 0 :(得分:2)

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"));