简体   繁体   中英

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM