Wer weiß, wie man eine java 8 type distinct function schreibt, um über eine Liste von Benutzerklicks zu streamen und deutlich zu machen (basierend auf url), aber die mit dem späteren Zeitstempel zu behalten ?Java 8. Liste der Objekte. Wollen Sie basierend auf einer Eigenschaft basierend auf der Eigenschaft unterscheidet
action=click, url=www.google.com, timestamp=10
action=click, url=www.google.com, timestamp=20
action=click, url=www.abc.com/123, timestamp=10
action=click, url=www.grassisgreener.com, timestamp=10
action=click, url=www.grassisgreener.com, timestamp=46
sollte Das Endergebnis
seineaction=click, url=www.google.com, timestamp=20
action=click, url=www.abc.com/123, timestamp=10
action=click, url=www.grassisgreener.com, timestamp=46
Die Merge-Funktion entspricht "BinaryOperator.maxBy (Comparator.comsparingLong (X :: getTimestamp))", wobei "X" der Typ der Elemente ist, der prägnanter mit "import static" aussieht ... – Holger
Die Alternative wäre 'groupingBy (X :: getUrl, collectingAndThen (maxBy (comparisonLong (X :: getTimestamp)), Optional :: get))' was eindeutig unter 'maxBy' leidet, was ein' Optional' erzeugt, obwohl wir wissen, dass Gruppen niemals leer sind ... – Holger
danke Holger. Die arbeiten auch. –