Heim > Java > javaLernprogramm > Wie kann man Objekte basierend auf bestimmten Eigenschaften effizient aus ArrayLists abrufen?

Wie kann man Objekte basierend auf bestimmten Eigenschaften effizient aus ArrayLists abrufen?

Patricia Arquette
Freigeben: 2024-12-04 02:13:09
Original
192 Leute haben es durchsucht

How to Efficiently Retrieve Objects from ArrayLists Based on Specific Properties?

Abrufen von Objekten aus Array-Listen basierend auf Eigenschaften

Bei der objektorientierten Programmierung stoßen Sie häufig auf Szenarien, in denen Sie ein Objekt mit a finden müssen bestimmte Eigenschaft inmitten einer Sammlung. Dies kann besonders in Frameworks wie Java EE nützlich sein, wo Sie möglicherweise mit POJOs arbeiten und Objekte aus einem In-Memory-Cache abrufen müssen.

Stellen Sie sich ein Szenario vor, in dem Sie eine Liste von Carnet-Objekten verwalten. Jedes davon besitzt Eigenschaften wie codeTitre, nomTitre und codeIsin. Angenommen, Sie müssen ein bestimmtes Carnet-Objekt anhand seiner Code-Isin finden. Um dies zu erreichen, können Sie die Leistungsfähigkeit der Java-Streams nutzen:

public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) {
    return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null);
}
Nach dem Login kopieren

Dieses Code-Snippet nutzt Streams, um die Sammlung von Carnet-Objekten effizient zu durchsuchen und diejenigen herauszufiltern, die nicht den angegebenen CodeIsIn-Kriterien entsprechen. Durch die Nutzung der findFirst()-Methode rufen Sie das erste passende Objekt ab oder null, wenn kein Objekt gefunden wird.

Es kann auch vorkommen, dass Sie Objekte mit unterschiedlichen Eigenschaften oder über mehrere Objekttypen hinweg finden müssen. Um dies zu beheben, können Sie eine Dienstprogrammklasse wie FindUtils einführen:

public final class FindUtils {
    public static <T> T findByProperty(Collection<T> col, Predicate<T> filter) {
        return col.stream().filter(filter).findFirst().orElse(null);
    }
}
Nach dem Login kopieren

Diese Dienstprogrammklasse stellt eine generische Methode bereit, die zum Suchen nach Objekten basierend auf beliebigen angegebenen Kriterien verwendet werden kann.

Darüber hinaus können Sie für jeden Objekttyp spezifische Dienstprogrammklassen erstellen, wie z. B. CarnetUtils:

public final class CarnetUtils {
    public static Carnet findByCodeTitre(Collection<Carnet> listCarnet, String codeTitre) {
        return FindUtils.findByProperty(listCarnet, carnet -> codeTitre.equals(carnet.getCodeTitre()));
    }

    // Similar methods for finding by other properties
}
Nach dem Login kopieren

Durch den Einsatz dieser Dienstprogrammklassen können Sie einfach und flexibel suchen für Objekte in Ihren ArrayLists, unabhängig von ihren spezifischen Eigenschaften.

Das obige ist der detaillierte Inhalt vonWie kann man Objekte basierend auf bestimmten Eigenschaften effizient aus ArrayLists abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage