小编Luc*_*uca的帖子

Java 8 替代 Map.entry() 将值映射到新 Map?

我找到了长期以来一直试图解决的问题的解决方案。\n不幸的是,我无法使用该解决方案,因为目标 java 版本是 Java 8。

\n\n
Map<List<String>, String> map = new HashMap<>();\n    map.put(List.of("Los Angeles", "New York", "Chicago"), "USA");\n    map.put(List.of("Toronto", "Vancover", "Montr\xc3\xa9al"), "Canada");\n\n    Map<String, String> newMap = map.entrySet()\n        .stream()\n        .flatMap(entry -> entry.getKey()\n            .stream()\n            .map(city -> Map.entry(city, entry.getValue())))\n        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会返回给我一个像这样的地图:{New York=USA, Chicago=USA, Los Angeles=USA, Toronto=Canada}

\n\n

现在我的问题是,在 Java 8 中不使用 Map.entry(...) 是否可以得到这个结果?

\n

java lambda java-8 java-stream

4
推荐指数
1
解决办法
4551
查看次数

Java 8 - 如何从列表映射中获取单个值?

我有以下地图,Map<List<String>, String>其中包含以下示例值:

List["Los Angeles", "New York", "Chicago"] -> "USA",
List["Toronto", "Vancover", "Montréal"] -> "Canada"
Run Code Online (Sandbox Code Playgroud)

是否可以获取 MapMap<String, String>并将值列表的每个元素映射到它的键?例子:

"Los Angeles" -> "USA",
"New York" -> "USA",
"Chicago" -> "USA",
"Toronto" -> "Canada",
...
Run Code Online (Sandbox Code Playgroud)

我需要它在一个流中,我可以排序后记。

java lambda java-stream

3
推荐指数
1
解决办法
722
查看次数

标签 统计

java ×2

java-stream ×2

lambda ×2

java-8 ×1