EnumMap是Java集合中的一種Map類型,它的特點是key只能是枚舉類型,因此在編譯時就已經確定了key的類型和范圍。在使用EnumMap時,我們可以通過定義枚舉常量來初始化一個空的EnumMap,或者從已有的Map中創(chuàng)建一個EnumMap。
public enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
// 定義一個空的EnumMap
EnumMap<Weekday, Integer> enumMap = new EnumMap<>(Weekday.class);
// 從已有的Map中創(chuàng)建EnumMap
Map<Weekday, Integer> map = new HashMap<>();
map.put(Weekday.MONDAY, 1);
map.put(Weekday.TUESDAY, 2);
EnumMap<Weekday, Integer> enumMap = new EnumMap<>(map);
EnumMap除了常規(guī)的Map操作方法外,還有一些特殊的方法。其中最常用的是EnumMap#putAll方法和EnumMap#entrySet方法。
// 使用putAll方法將一個已有的Map添加到EnumMap中
Map<Weekday, Integer> map = new HashMap<>();
map.put(Weekday.MONDAY, 1);
map.put(Weekday.TUESDAY, 2);
enumMap.putAll(map);
// 使用entrySet方法獲取所有的鍵值對
Set<Map.Entry<Weekday, Integer>> entrySet = enumMap.entrySet();
Json是一種輕量級的數據交換格式,它的特點是易于閱讀和編寫,并且支持多種語言和平臺。在Java中,我們可以通過使用第三方庫來將Java對象轉換為Json字符串或將Json字符串轉換為Java對象。
// 將Java對象轉換為Json字符串
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(enumMap);
// 將Json字符串轉換為Java對象
EnumMap<Weekday, Integer> enumMapFromJson = objectMapper.readValue(json, new TypeReference<EnumMap<Weekday, Integer>>(){});
以上就是EnumMap和Json相互轉換的使用方法。在實際開發(fā)中,我們可以通過將EnumMap轉換為Json字符串來存儲或傳輸數據,而將Json字符串轉換為EnumMap則可以方便地將數據還原為Java對象。