Java 8 | courant Parallèle pour une HashMap
Dans java 8 je sais qu'ils ont ajouté le courant parallèle qui tire parti des processeurs multicœurs, et je sais que vous pouvez l'utiliser avec quelque chose comme ceci:
List<String> list = new ArrayList<String>();
list.parallelStream().forEach(str -> System.out.println(str));
Mais comment pourrais-je obtenir quelque chose comme ceci avec une table de hachage?
Map<String, Integer> map = new HashMap<String, Integer>();
//won't work, because the Map class doesn't have the .parallelStream()
map.parallelStream().forEach((str, num) -> System.out.println(str + ":" + num));
Personne ne sait comment faire quelque chose comme cela? Grâce
OriginalL'auteur John S. | 2016-05-02
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas diffuser une
Map
directement, mais vous pouvez diffuser son entrée set, donné avec leentrySet()
méthode. Extraire la clé et la valeur de l'entrée de l'objet..getValue()
baisse de performance?Par rapport à quoi? Un morceau de code a extraire la valeur (et la clé) à compter de l'entrée.
S.: peut-être que vous confondez
Map.Entry.getValue
avecMap.get
. InvoquantgetValue
ici n'est pas identique à unMap
de recherche. Alors que c'est la carte dépendant de l'implémentation, une entrée représente généralement une sorte de résolu cartographie ayant à bas prixgetKey
etgetValue
méthodes, c'est à dire en cas dejava.util.HashMap
, nous parlons de la lecture d'un champ à partir de l'entrée de l'instance, et non pas sur un hachage de recherche.OriginalL'auteur rgettman
Vous pouvez obtenir le 'entrée de la valeur" à partir de la valeur de hachage de la carte en appelant la carte.entrySet(), vous pouvez appeler parallelStream() sur le revenu d'entrée de jeu.
Veuillez noter que l'objet retourné est un jeu de Carte.De l'entrée. Vous pouvez obtenir la clé et de la valeur à partir d'une entrée de la valeur de l'élément en appelant getKey() et getValue() respectivement. Comme suit:
OriginalL'auteur AJ Jwair