Sortieren von Objekten in einer Liste nach Zeitstempeln mithilfe von Komparatoren
In Java erfordert das Sortieren einer Liste von Objekten basierend auf mehreren Eigenschaften die Verwendung von Komparatoren. Wenn Sie eine Klasse mit zeitbezogenen Attributen wie ActiveAlarm haben, können Sie Komparatoren verwenden, um diese in einer bestimmten Reihenfolge zu sortieren.
Um eine Liste zu sortieren
List<ActiveAlarm> alarms = new ArrayList<>(); // Custom comparator to compare ActiveAlarm instances based on timeStarted and timeEnded Comparator<ActiveAlarm> comparator = new Comparator<ActiveAlarm>() { @Override public int compare(ActiveAlarm o1, ActiveAlarm o2) { // First compare timeStarted int comparisonResult = Long.compare(o1.timeStarted, o2.timeStarted); // If timeStarted is equal, compare timeEnded if (comparisonResult == 0) { comparisonResult = Long.compare(o1.timeEnded, o2.timeEnded); } return comparisonResult; } }; // Sort the list of alarms using the comparator Collections.sort(alarms, comparator);
In diesem Komparator vergleicht die Vergleichsmethode zunächst die timeStarted-Werte und gibt eine Ganzzahl zurück, die angibt, ob o1 früher (<0) oder später (>0) als o2 ist. Wenn die timeStarted-Werte gleich sind, werden dann die timeEnded-Werte verglichen.
Mit Java 8 und höher können Sie Lambda-Ausdrücke verwenden, um den Komparator zu vereinfachen:
Comparator<ActiveAlarm> comparator = (o1, o2) -> { int comparisonResult = Long.compare(o1.timeStarted, o2.timeStarted); if (comparisonResult == 0) { comparisonResult = Long.compare(o1.timeEnded, o2.timeEnded); } return comparisonResult; };
Durch die Verwendung von Komparatoren können Sie kann Listen von Objekten basierend auf bestimmten Eigenschaften effizient sortieren und bietet so einen flexiblen Ansatz zum Organisieren und Bearbeiten von Daten in Java.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Komparatoren eine Liste von Java-Objekten nach mehreren Zeitstempeln sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!