【发布时间】:2019-06-14 16:44:34
【问题描述】:
我有一个特殊问题,想知道 Java 8 Streams API 是否可以解决它。我知道这可以在使用 Streams API 之外完成,但如果可以使用 Streams 完成,我不想添加与尝试实现该目标相关的所有样板代码。我有地图
Map<String, String> greetings = new HashMap<>();
greetings.put("abc", "Hello");
greetings.put("def", "Goodbye");
greetings.put("ghi", "Ciao");
greetings.put("xyz", "Bonsoir");
还有一个键列表:
List<String> keys = Arrays.asList("def", "zxy");
将上述内容与 Streams API 一起使用,是否可以将其过滤为:
Map<String, String> filteredGreetings = new HashMap<>();
filteredGreetings.put("def", "Goodbye");
filteredGreetings.put("xyz", "Bonsoir");
希望这对我想要实现的目标有意义。
到目前为止,我只有在指定过滤地图的 keySet 的确切键时才能使用它,但是这只会返回一个条目集。我对完全过滤的地图感兴趣,我正在努力实现这一目标。
【问题讨论】:
-
只是巧合、错别字还是要求,我注意到了键
"zxy",结果仍然是put("xyz", "Bonsoir")? -
是的,这是一个错字。道歉
标签: java collections java-8 java-stream