ugurdonmez ugurdonmez - 8 months ago 47
Java Question

Java int array to HashMap<Integer, Boolean> with IntStream

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


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

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

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