Java int数组到HashMap 和IntStream(Java int array to HashMap with IntStream)

我需要取每个数组元素的平方并将一个条目插入到hashmap中,并将此值作为键,并将true作为值。 我试过这样做,但我无法解决它。

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)));

I need to take square of each array element and insert a entry to hashmap with this value as a key and true as a value. I have tried to do it like that but I can not fix it.

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)));

最满意答案

您可以IntStream并继续使用Stream<Integer> :

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

请注意, Collectors.toMap返回Map而不是HashMap 。

You can box the IntStream and proceed with a Stream<Integer> :

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

Note that Collectors.toMap returns a Map, not a HashMap.

Java int数组到HashMap 和IntStream(Java int array to HashMap with IntStream)

我需要取每个数组元素的平方并将一个条目插入到hashmap中,并将此值作为键,并将true作为值。 我试过这样做,但我无法解决它。

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)));

I need to take square of each array element and insert a entry to hashmap with this value as a key and true as a value. I have tried to do it like that but I can not fix it.

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)));

最满意答案

您可以IntStream并继续使用Stream<Integer> :

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

请注意, Collectors.toMap返回Map而不是HashMap 。

You can box the IntStream and proceed with a Stream<Integer> :

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

Note that Collectors.toMap returns a Map, not a HashMap.