让我们想象一下以下的对象:
假设有一个对象:
class People {
public int id;
public String name;
public Date dateOfDeath;
}
我有两个人员列表。
在第一个列表中,People对象的ID和NAME已正确设置。在第二个列表中,People对象的ID和DATEOFDEATH已正确设置。
我需要将这两个列表合并,以获得一个完整的People对象列表(包括姓名和死亡日期)。
使用完全过程化的方法,可以像这样使用双重循环完成:
for (People fullPeople : firstList) {
for (People peopleWithDateOfDeath : secondList) {
if (peopleWithDateOfDeath.id == fullPeople.id) {
fullPeople.dateOfDeath = peopleWithDateOfDeath.dateOfDeath;
break;
}
}
}
secondList = null;
// first list is good :)
我该如何以函数式的方式实现这个功能?我正在使用Rx-Java,但使用Java 8的Streams也可以轻松转换。
deaths.remove(p.id)
而不是deaths.get(p.id)
。 - Tunaki