Verwenden Sie die Java 8 Stream-API, um Objekte basierend auf einer ID und einem Datum zu filtern.
Ich habe einContact
Klasse, für die jede Instanz ein eindeutiges @ hcontactId
.
public class Contact {
private Long contactId;
... other variables, getters, setters, etc ...
}
Und einLog
Klasse, die ein @ detaillieaction
durchgeführt von einemContact
an einem bestimmtenlastUpdated
Datum
public class Log {
private Contact contact;
private Date lastUpdated;
private String action;
... other variables, getters, setters, etc ...
}
Now, in meinem Code habe ich einList<Log>
das kann mehrere @ enthaltLog
Instanzen für ein einzelnesContact
. Ich möchte die Liste so filtern, dass sie nur ein @ enthälLog
Instanz für jedesContact
, basierend auflastUpdated
Variable in derLog
Objekt. Die resultierende Liste sollte das neueste @ enthaltLog
Instanz für jedesContact
.
Ich könnte dies tun, indem ich ein @ erstelMap<Contact, List<Log>>
, dann durchschleifen und das @ bekommLog
Instanz mit maxlastUpdated
Variable für jedesContact
, aber dies scheint mit der Java 8 Stream-API viel einfacher zu sein.
Wie kann man dies mit der Java 8 Stream-API erreichen?