Es gibt eine Liste Mitarbeiterobjekte, jedes Mitarbeiterobjekt hat das Startdatum der Eigenschaft. Aufgabe ist es, nur einen Mitarbeiter auszuwählen, der das früheste Startdatum hat. Ich versuche, Java 8 Predicate dafür zu verwenden. Also im Grunde, wie kann ich Listenelemente im Prädikat miteinander vergleichen? Und wie kann ich das Gleiche mit Lambda mit Functional interface tun?Java 8 Prädikat zur Auswahl eines Elements aus einer Liste basierend auf Elementeigenschaften
1
A
Antwort
1
Java-Prädikate basieren auf dem mathematischen Konzept eines Prädikats, das eine Funktion F (x) ist, die basierend auf einigen Eigenschaften von x wahr oder falsch zurückgibt. Da die Funktion beim Überqueren der Sammlung nicht neu definiert werden kann, handelt es sich wahrscheinlich nicht um die Option zum Auffinden des Minimums oder Maximums einer Sammlung.
Eine empfohlene Vorgehensweise mit Java 8 wäre die Verwendung der Funktion min
in Java Streams.
Employee oldestEmployee = employees.stream().min(Comparator.comparing(Employee::getStartDate)).get()
1
Sie Gesetzt haben Mitarbeiter:
class Employee {
private LocalDate startDate;
}
Constructor und Getter weggelassen. Sie finden den Mitarbeiter mit dem frühesten Startdatum wie folgt:
Optional<Employee> min = list.stream()
.min(Comparator.comparing(Employee::getStartDate));
Verwandte Themen
- 1. basierend auf Auswahl aus einer Liste
- 2. WPF Sichtbarkeit eines UI-Elements basierend auf der Combo-Auswahl
- 3. Dynamisches Entfernen eines Elements aus einer Liste
- 4. Entfernen eines Elements aus einer Prioritätswarteschlange basierend auf einer verknüpften Liste
- 5. Löschen eines Elements aus einer verknüpften Liste
- 6. Löschen eines Elements aus einer generischen Liste
- 7. Anwenden OR Prädikat Java 8
- 8. Entfernen eines Elements aus einer Liste
- 9. Entfernen eines Elements aus .loc basierend auf einer bedingten Anweisung
- 10. Konfidenzintervalle in Java, Testen der zufälligen Auswahl eines Elements in einer Liste von Objekten
- 11. Liste: Anzeige eines Elements zur Zeit
- 12. Hinzufügen eines Elements zur Liste in Schema
- 13. Hinzufügen eines Elements zur Liste durch Reflexion
- 14. Erstellen einer Liste, Abrufen eines Elements aus jeder verschachtelten Liste
- 15. Auswählen eines Elements aus einer Liste und Bearbeiten
- 16. Anfügen eines Elements aus einer Liste an eine andere Liste
- 17. Java 8. Liste der Objekte. Wollen Sie basierend auf einer Eigenschaft basierend auf der Eigenschaft unterscheidet
- 18. Spalten eines Datenrahmens basierend auf einem Prädikat in Pandas zusammenfügen
- 19. Java 8 modify stream elements
- 20. Vervollständigen eines Eintrags aus einer Dropdown-Liste in einer Spalte basierend auf der Auswahl aus einer anderen Spalte
- 21. Java 8: Finde den Index des Minimalwerts aus einer Liste
- 22. Einfaches Ausschließen eines Elements aus einer Berechnung in einer Liste?
- 23. Java 8 summarise durch mehr Prädikat
- 24. Suche nach Daten basierend auf Auswahl aus Dropdown-Liste
- 25. Javascript Auswahl eines bestimmten Elements aus repetitivem Element Klasse
- 26. Add Filter basierend auf einer Bedingung java 8
- 27. Abrufen einer Liste aus einem java.util.stream.Stream in Java 8
- 28. Ipywidget Dropdown-Menü zur Auswahl einer Figur aus der Liste
- 29. Rails Dependent Form - Auswahl eines bestimmten Elements aus einem Modell
- 30. Überprüfen Bedingung auf geschachtelte Schleife zur Liste hinzufügen, Java 8
Sie können die Terminalfunktion - min/max mit Ihrem Komparator verwenden. Werfen Sie einen Blick auf [dieses] (https://stackoverflow.com/questions/22561614/java-8-streams-min-and-max-why-does-this-compile#) – GurV
könnten Sie bitte hier einfügen, was Sie habe versucht? – Vaseph