我需要取每个数组元素的平方并将一个条目插入到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)));
答案 0 :(得分:4)
您可以box
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
。
答案 1 :(得分:0)
`你可以使用一个简单的循环
int [] array = {3,1,4,6,5};
HashMap<Integer, Boolean> map = new HashMap<Integer, Boolean>();
for(int i : array) {
map.put(i*i, true);
}