Maison > Java > javaDidacticiel > Comment rechercher efficacement un objet dans une ArrayList par valeur de propriété ?

Comment rechercher efficacement un objet dans une ArrayList par valeur de propriété ?

Susan Sarandon
Libérer: 2024-12-06 20:58:13
original
738 Les gens l'ont consulté

How to Efficiently Find an Object in an ArrayList by Property Value?

Rechercher un objet dans une ArrayList par propriété

Étant donné une ArrayList contenant des objets de classe Carnet, comment pouvons-nous récupérer efficacement un objet spécifique basé sur sur la valeur d'une propriété particulière, comme codeIsin ?

Solution (Java 8 Streams) :

Dans Java 8, nous pouvons exploiter les flux pour effectuer cette opération de manière concise :

public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) {
    return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null);
}
Copier après la connexion

Approche de classe utilitaire (facultatif) :

Si nous devons effectuer de telles recherches dans de nombreuses classes différentes ou pour différentes propriétés, nous pouvons encapsuler cette logique dans un utilitaire class :

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()));
    }

    // Similar methods for other properties (e.g., findByNomTitre, findByCodeIsIn)
}
Copier après la connexion

Cette approche fournit une solution plus réutilisable et permet une modification facile des critères de recherche.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal