Heim >Java >javaLernprogramm >Wie kann man ein Carnet-Objekt in einer ArrayList anhand seiner codeIsin-Eigenschaft effizient finden?
Objekte aus einer ArrayList basierend auf dem Eigenschaftswert abrufen
Die vorliegende Aufgabe besteht darin, ein bestimmtes Objekt, nämlich eine Carnet-Instanz, darin zu lokalisieren eine ArrayList
Java 8 Streams-Ansatz
Java 8 führt Streams ein, die eine prägnante und effiziente Möglichkeit bieten, mit Datensammlungen zu arbeiten. So finden Sie das gewünschte Objekt:
public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) { return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null); }
Diese Methode nutzt stream(), um die Liste zu durchlaufen, und filter(), um nur das Objekt mit dem passenden codeIsin-Wert auszuwählen. findFirst() ruft das erste passende Element ab und orElse() gibt null zurück, wenn keine Übereinstimmung gefunden wird.
Generischer Utility-Class-Ansatz
Für Szenarien, in denen mehrere Objekttypen ( (nicht nur Carnet) oder mehrere Sucheigenschaften (nicht nur codeIsin) beteiligt sind, sollten Sie erwägen, eine Dienstprogrammklasse zu erstellen, um die Suche zu kapseln Logik:
public final class FindUtils { public static <T> T findByProperty(Collection<T> col, Predicate<T> filter) { return col.stream().filter(filter).findFirst().orElse(null); } } public final class CarnetUtils { public static Carnet findByCodeTitre(Collection<Carnet> listCarnet, String codeTitre) { return FindUtils.findByProperty(listCarnet, carnet -> codeTitre.equals(carnet.getCodeTitre())); } // Additional methods for other search criteria }
Dieser Ansatz zentralisiert die Suchlogik und ermöglicht eine einfache Wiederverwendung über verschiedene Objekttypen und Sucheigenschaften hinweg.
Das obige ist der detaillierte Inhalt vonWie kann man ein Carnet-Objekt in einer ArrayList anhand seiner codeIsin-Eigenschaft effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!