我遇到了一种情况,需要复制我的 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/