Use a API Java 8 Stream para filtrar objetos com base em um ID e Data

eu tenho umContact classe, para a qual cada instância tem um únicocontactId.

public class Contact {
    private Long contactId;

    ... other variables, getters, setters, etc ...
}

E umLog classe que detalha umaaction realizada por umContact em um certolastUpdated encontro.

public class Log {
    private Contact contact;
    private Date lastUpdated;
    private String action;

    ... other variables, getters, setters, etc ...
}

Agora, no meu código, tenho umList<Log> que pode conter váriosLog instâncias para um únicoContact. Gostaria de filtrar a lista para incluir apenas umLog instância para cadaContact, com base nolastUpdated variável noLog objeto. A lista resultante deve conter os mais recentesLog instância para cadaContact.

Eu poderia fazer isso criando umMap<Contact, List<Log>>, percorrendo e obtendo oLog instância com maxlastUpdated variável para cadaContact, mas parece que isso poderia ser feito de maneira muito mais simples com a API Java 8 Stream.

Como alguém conseguiria isso usando a API Java 8 Stream?

questionAnswers(1)

yourAnswerToTheQuestion