Maison >Java >javaDidacticiel >Comment puis-je convertir efficacement une liste Java en carte à l'aide de Streams et Lambdas ?
Conversion de la liste Java
Contexte :
La conversion d'une liste d'objets en carte est une tâche courante. Java 7 et versions antérieures nécessitent un codage impératif à l'aide d'une boucle for-each. Dans Java 8, l'utilisation de flux et de lambdas fournit une solution concise et élégante.
Solution Java 7 :
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; }
Solution Java 8 sans goyave :
En tirant parti de la classe Collectors, la conversion peut être effectuée en un seul flux opération :
Map<String, Choice> result = choices.stream().collect(Collectors.toMap(Choice::getName, Function.identity()));
Ici, Choice::getName récupère la clé de nom et Function.identity() préserve la valeur.
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!