4 votes

Tableau int Java vers HashMap<Integer, Boolean> avec IntStream

J'ai besoin de prendre le carré de chaque élément du tableau et d'insérer une entrée dans le hashmap avec cette valeur comme clé et true comme valeur. J'ai essayé de le faire de cette manière mais je n'y arrive pas.

int [] array = {3, 1, 4, 6, 5};

    HashMap<Integer, Boolean> map = IntStream.of(array)
            .map(x -> x*x)
            .collect(Collectors.toMap(p -> Integer.valueOf(p), Boolean.valueOf(true)));

4voto

Eran Points 35360

Vous pouvez box les IntStream et procéder à une Stream<Integer> :

Map<Integer, Boolean> map = IntStream.of(array)
        .map(x -> x*x)
        .boxed()
        .collect(Collectors.toMap(p -> p, p -> Boolean.valueOf(true)));

Il convient de noter que Collectors.toMap renvoie un Map et non un HashMap .

0voto

Anmol Kumar Points 21

`vous pouvez utiliser une simple boucle

int [] array = {3, 1, 4, 6, 5} ;

HashMap<Integer, Boolean> map = new HashMap<Integer, Boolean>();

for(int i : array) {
   map.put(i*i, true);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X