Maison >Java >javaDidacticiel >Comment rechercher efficacement un objet Carnet dans une ArrayList grâce à sa propriété codeIsin ?
Récupération d'objets d'une ArrayList en fonction de la valeur de la propriété
La tâche à accomplir consiste à localiser un objet spécifique, à savoir une instance Carnet, dans une ArrayList
Approche Java 8 Streams
Java 8 introduit les flux, qui offrent un moyen concis et efficace de travailler avec des collections de données. Pour trouver l'objet souhaité :
public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) { return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null); }
Cette méthode exploite stream() pour parcourir la liste et filter() pour sélectionner uniquement l'objet avec la valeur codeIsin correspondante. findFirst() récupère le premier élément correspondant et orElse() renvoie null si aucune correspondance n'est trouvée.
Approche de classe utilitaire générique
Pour les scénarios dans lesquels plusieurs types d'objets ( pas seulement Carnet) ou plusieurs propriétés de recherche (pas seulement codeIsin) sont impliquées, envisagez de créer une classe utilitaire pour encapsuler la recherche logique :
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 }
Cette approche centralise la logique de recherche et permet une réutilisation facile sur différents types d'objets et propriétés 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!