Maison >Java >javaDidacticiel >Comment puis-je convertir une liste en carte dans Java 8 à l'aide de Streams ?

Comment puis-je convertir une liste en carte dans Java 8 à l'aide de Streams ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-21 00:49:10419parcourir

How Can I Convert a List to a Map in Java 8 Using Streams?

Java 8 : Convertir la liste vers Map

Dans Java 8 et versions ultérieures, vous pouvez facilement convertir une liste d'objets en carte à l'aide de la puissante API de flux et des lambdas, sans recourir à des bibliothèques tierces. Modifions l'exemple Java 7 :

private Map<String, Choice> nameMap(List<Choice> choices) {
    Map<String, Choice> hashMap = choices.stream()
        .collect(Collectors.toMap(Choice::getName, Function.identity()));
    return hashMap;
}

Voici ce qui se passe dans ce code :

  1. La méthode stream() crée un flux d'objets Choice à partir de la liste .
  2. La méthode collect() termine le flux et collecte les éléments dans un Map.
  3. Le collecteur Collectors.toMap() est utilisé pour créer la carte. Il faut deux arguments :

    • Le premier argument est une fonction qui mappe chaque élément du flux à la clé de la carte. Ici, Choice::getName est utilisé pour mapper chaque choix à son nom.
    • Le deuxième argument est une fonction qui mappe chaque élément du flux à la valeur de la carte. Dans ce cas, Function.identity() est utilisé pour conserver le choix d'origine comme valeur.
  4. La carte résultante est stockée dans la variable hashMap et renvoyée.

Cette approche exploite les flux Java 8 pour écrire du code succinct et efficace permettant de convertir des listes en 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!

Déclaration:
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