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)
.boxed()
.collect(Collectors.toMap(p -> p, p -> Boolean.valueOf(true)));
Note that Collectors.toMap
returns a Map
, not a HashMap
.
`you can use a simple loop
int [] array = {3, 1, 4, 6, 5};
HashMap<Integer, Boolean> map = new HashMap<Integer, Boolean>();
for(int i : array) {
map.put(i*i, true);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.