Java 8 : Transform EnumMap<ExampleEnum, 字符串> 到映射<字符串,对象>

标签 java java-8 maps java-stream enum-map

我遇到了一种情况,需要复制我的 EnumMap<ExampleEnum,String>Map<String, Object> 。 Stack Overflow 上的许多示例展示了如何从一种数据类型转换为另一种数据类型,但不是从枚举转换。我尝试过通过流来做到这一点,但没有运气。这是我的代码

private enum Number{
  One, Two, Three;
}
final Map<Number, String> map = Collections.synchronizedMap(new EnumMap<Number, String> (Number.class));

populateMap(map);
Map<String, Object> newMap= new HashMap<String, Object>();

现在我想做一些类似的事情

newMap.putAll(map);

如何通过 Stream API 做到这一点?

最佳答案

更简洁的答案是,

final Map<Number, String> map = Collections.synchronizedMap(new EnumMap<>(Number.class));

Map<String, Object> newMap= new HashMap<>();

map.forEach((key, value) -> newMap.put(key.name(), value));

关于Java 8 : Transform EnumMap<ExampleEnum, 字符串> 到映射<字符串,对象>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51045349/

相关文章:

java - 设置 JNI 和子进程内存限制

java - 编译后的 Java 8 lambda 表达式是否向后兼容早期版本的 Java 运行时?

java - 函数式编程如何变得更好 (Java 8)

html - iOS 打开与 map 应用程序的链接

java - JPA 将另一个时间保存到数据库中

java - 如何在达到特定值后触发声音

java-8 - Java 检查平台是否支持 sctp,否则使用 tcp

ios - 使 map 适合 Carto 移动 SDK 中的对象

Android mapbox 库非常大

java - JAX-WS 和 SharePoint 用户组 Web 服务