[英]Java 8: Transform EnumMap<ExampleEnum, String> to Map<String, Object>
我遇到需要將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做到這一點?
Map<String, Object> newMap = map.entrySet().stream()
.collect(Collectors.toMap(e -> e.getKey().toString(), Map.Entry::getValue));
一個更簡潔的答案是,
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));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.