Utilice Java 8 Stream API para filtrar objetos basados en una ID y fecha
tengo unContact
clase, para la cual cada instancia tiene una únicacontactId
.
public class Contact {
private Long contactId;
... other variables, getters, setters, etc ...
}
Y unLog
clase que detalla unaaction
realizado por unContact
en ciertolastUpdated
fecha.
public class Log {
private Contact contact;
private Date lastUpdated;
private String action;
... other variables, getters, setters, etc ...
}
Ahora, en mi código tengo unList<Log>
que puede contener múltiplesLog
instancias para un soloContact
. Me gustaría filtrar la lista para incluir solo unaLog
instancia para cadaContact
, basado en ellastUpdated
variable en elLog
objeto. La lista resultante debe contener el más nuevo.Log
instancia para cadaContact
.
Podría hacer esto creando unMap<Contact, List<Log>>
, luego recorriendo y obteniendo elLog
instancia con maxlastUpdated
variable para cadaContact
, pero parece que podría hacerse mucho más simple con la API Java 8 Stream.
¿Cómo se podría lograr esto usando la API Java 8 Stream?