【发布时间】:2023-03-23 10:05:01
【问题描述】:
我有一个Map<String, List<String>>。在对地图的键进行过滤后,我想将此地图转换为列表。
例子:
Map<String, List<String>> words = new HashMap<>();
List<String> aList = new ArrayList<>();
aList.add("Apple");
aList.add("Abacus");
List<String> bList = new ArrayList<>();
bList.add("Bus");
bList.add("Blue");
words.put("A", aList);
words.put("B", bList);
给定一个键,比如“B”
Expected Output: ["Bus", "Blue"]
这就是我正在尝试的:
List<String> wordsForGivenAlphabet = words.entrySet().stream()
.filter(x-> x.getKey().equalsIgnoreCase(inputAlphabet))
.map(x->x.getValue())
.collect(Collectors.toList());
我收到一个错误。有人可以为我提供一种在 Java8 中执行此操作的方法吗?
【问题讨论】:
-
好吧,首先,你遇到了什么错误?
-
你为什么不直接使用
map.get(inputAlphabet.toUpperCase())? -
@FedericoPeraltaSchaffner 我认为是因为
Map也可能包含小写字母一般而言,这只是一个示例... -
@Eugene 是的,我也认为这是一个简化的例子。我只是发表评论,以便 OP 有机会改进它。
标签: java list java-8 hashmap collectors