Ich arbeite mit einem List
von Person
Objekte. Ich versuche, alle Person
mit dem maximalen Datum schnell zu identifizieren und zurückzugeben.Java und Max Wert Problem
Zum Beispiel:
Persons:[
{
id: 1
submitDate: 2010-01-01
name : john Smith
},
{
id: 1
submitDate: 2011-01-01
name : john Smith
},
{
id: 2
submitDate: 2011-01-02
name : jason Doe
},
{
id: 1
submitDate: 2012-01-01
name : john Smith
},
{
id: 1
submitDate: 2013-01-01
name : john Smith
},
{
id: 2
submitDate: 2013-01-02
name : jason Doe
}
]
ich nach einem Weg suchen, in Java, zurückzukehren, um den folgenden (Max submitDate
Wert):
Persons: [
{
id: 1
submitDate: 2013-01-01
name : john Smith
},
{
id: 2
submitDate: 2013-01-02
name : jason Doe
}
]
Irgendwelche Gedanken darüber, wie man dies am besten erreichen?
============================================== ========================== ich habe versucht:
List<Person> personList = Lists.newArrayList();
getPersonList().stream()
.map(this.setSource)
.max(Comparator.comparing(Person::getSubmitDate))
.map(personList::add);
aber sie einen einzigen Person
Datensatz zurückgibt, nicht die max submitDate für jedePerson
Für zukünftige Suchen und Schreiben, verwenden Sie das Wort "distinct", wenn Sie beabsichtigen, doppelte Werte zu eliminieren. Angesichts Ihrer Beispieldaten sehe ich nicht, dass Sie nach "Maximum" streben. Ich sehe nur das Entfernen von Duplikaten, um eine eindeutige Liste zu erstellen. Bearbeiten Sie Ihre Frage zur Klärung. Mögliches Duplikat: [Java - Distinct Liste der Objekte] (http://stackoverflow.com/q/1019854/642706) –
@BasilBourque, wenn Sie oben lesen, gebe ich an "Ich versuche, alle' Person schnell zu identifizieren und zurückzugeben 's mit dem maximalen Datum". Ich stimme zu, dass ich meine Frage ursprünglich besser geschrieben hätte erklären können, ich wollte das maximale Datum für jede Person bekommen (basierend auf ID). Ich ging jedoch zurück und erkläre mich in meinem "Edit" – Dan
Ich war in der letzten Teil meines Kommentars oben über nicht "Maximum" nicht korrekt. Ich habe die Daten falsch gelesen, da ich nur auf den Monat, aber nicht auf das Jahr geschaut habe. Vielleicht sollten Sie die Monatstage der Beispielwerte etwas bearbeiten, um zu vermeiden, dass andere denselben Fehler machen. –