In Java besteht eine häufige Aufgabe darin, Daten in einer Sammlung basierend auf einem benutzerdefinierten Kriterium zu organisieren. Angenommen, wir haben eine Sammlung von Objekten mit einem ID-Feld und möchten sie nach diesem Feld sortieren.
Um dies zu erreichen, können wir einen Komparator verwenden, der es uns ermöglicht, unsere eigene Logik für die Sortierung anzugeben. So geht's:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class CustomObject implements Comparable{ private int id; public int getId() { return id; } @Override public int compareTo(CustomObject other) { return this.id - other.id; } } public class CustomCollectionSorting { public static void main(String[] args) { // Initialize the list of CustomObject List list = new ArrayList(); list.add(new CustomObject(3)); list.add(new CustomObject(5)); list.add(new CustomObject(1)); list.add(new CustomObject(2)); // Create a comparator Comparator comparator = new Comparator () { @Override public int compare(CustomObject left, CustomObject right) { return left.getId() - right.getId(); } }; // Sort the collection Collections.sort(list, comparator); // Display the sorted list System.out.println(list); } }
Die Verwendung eines Komparators bietet Ihnen maximale Flexibilität bei der Definition Ihrer Sortierlogik. Wenn CustomObject Comparable implementiert, können Sie alternativ die einfachere Methode Collections.sort(list) verwenden.
Mit Java 8 ist das Sortieren von Sammlungen noch einfacher:
list.sort((left, right) -> left.getId() - right.getId()); list.sort(Comparator.comparing(CustomObject::getId));
Diese Beispiele zeigen, wie eine Java-Sammlung basierend auf einem bestimmten Feld sortiert wird, wodurch es einfacher wird, Daten gemäß bestimmten Anforderungen zu organisieren und zu bearbeiten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3