簡體   English   中英

Java 8:轉換EnumMap <ExampleEnum, String> 到地圖 <String, Object>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM