Java 8 Stream过滤给定键列表的映射中的所有值

Ale*_*lex 2 java java-8 java-stream

我有一个Map<String, String>

List<String>我想流式传输I call中的所有值keys

我怎样才能让它从地图返回值?

地图是这样的:

("Frank", "Car")
("Bob", "Bike")
("Jim", "Truck")
Run Code Online (Sandbox Code Playgroud)

我给它的钥匙列表:

["Frank","Jim"]
Run Code Online (Sandbox Code Playgroud)

预期结果:

["Car","Truck"]
Run Code Online (Sandbox Code Playgroud)

我尝试了这个,但它只打印键而不是值。

keys.stream()
    .filter(map::containskey)
    .collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)

Boh*_*ian 5

流式传输并过滤条目:

map.entrySet().stream()
      .filter(e -> keys.contains(e.getKey()))
      .map(Map.Entry::getValue)
      .collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)