I'm kinda new to Java 8's new features. I am learning how to filter a map by entries. I have looked at this tutorial and this post for my problem, but I am unable to solve.
@Test
public void testSomething() throws Exception {
HashMap<String, Integer> map = new HashMap<>();
map.put("1", 1);
map.put("2", 2);
map = map.entrySet()
.parallelStream()
.filter(e -> e.getValue()>1)
.collect(Collectors.toMap(e->e.getKey(), e->e.getValue()));
}
However, my IDE (IntelliJ) says "Cannot resolve method 'getKey()'", thus unable to complile:
Neither does this help:
Can anyone help me to solve this issue?
Thanks.
The message is misleading but your code does not compile for another reason:
collect
returns aMap<String, Integer>
not aHashMap
.If you use
it should work as expected (also make sure you have all the relevant imports).
Your are returning Map not hashMap so you need to change
map
type tojava.util.Map
. Moreover you can use method reference rather then calling getKey, getValue. E.g.You could solve it by using some intellij help as well for e.g. if you press
ctrl+alt+v
in front ofThe variable created by intellij will be of exact type and you will get.