Maison >Java >javaDidacticiel >Comment puis-je convertir efficacement une liste en carte dans Java 8 ?
Solution Java 8 pour convertir la liste
Dans Java 8, la conversion d'une liste d'objets en carte peut être réalisée efficacement à l'aide d'opérations de flux. Considérons le scénario suivant dans lequel nous souhaitons mapper une liste d'objets Choice à un objet Map
Approche traditionnelle de Java 7
Dans Java 7, nous utilisons généralement une boucle for-each et construisons manuellement la carte :
private Map<String, Choice> nameMap(List<Choice> choices) { final Map<String, Choice> hashMap = new HashMap<>(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; }
Approche du flux Java 8
Java 8 les flux fournissent une manière plus concise et expressive d'accomplir cette tâche :
Map<String, Choice> result = choices.stream().collect(Collectors.toMap(Choice::getName, Function.identity()));
Décomposition du code
Collectors.toMap() est un collecteur qui accumule des éléments dans une carte. Il prend deux arguments :
En utilisant Collectors.toMap() collecteur, nous mappons efficacement chaque champ de nom à son objet Choice correspondant dans le résultat de la carte résultant. Cette approche simplifie le processus de cartographie et évite le besoin d'itérations de boucles manuelles et de construction de cartes.
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!