Raju Sidda:
Tengo dos cuentas lista de objetos y salarios y necesito iterar la lista de objetos. Si la identificación coincide con lo que necesito para actualizar el objeto de cuenta.
Tengo lista1 y lista2 estos dos objetos son diferentes tipo de objeto. tenemos que actualizar el objeto (param) en lista1 con objeto lista2 (param).
Ejemplo
if(accounts !=null && salaries!=null) { // checking for nulls
for (Account obj1 : accounts) {// iterating objects
for (Salary obj2 : salaries) {
String id = ibj2.getId();
if (id.equals(obj1.getId())) {// id checks
obj1.setxxxx(obj2.getxxxx());// set the value
}
}
}
}
Lo intenté:
list1.stream().flatMap(x -> list2 .stream() .filter(y -> x.getId().equals(y.getId())));
Sharon Ben Asher:
La operación final, obj1.setxxxx(obj2.getxxxx());
requiere tener tanto obj1
y obj2
. que dicta el artículo que se transmite desde ambas listas
list1.stream()
.forEach(obj1 ->
list2.stream()
.filter(obj2 -> obj1.getId().equals(obj2.getId()))
.findFirst()
.ifPresent(obj2 -> obj1.setxxxx(obj2.getxxxx()))
);