2016-03-05 48 views
0

我試圖根據其密鑰格式化我的HashMap中的數據。如何通過密鑰格式化地圖數據

我有一個環,其以下列格式

icon: "rain" 
windBearing: 239 
ozone: 339.89 
precipType: "rain" 
humidity: 0.82 
moonPhase: 0.98 
windSpeed: 7.37 
summary: "Light rain starting in the evening." 
visibility: 16.09 
cloudCover: 0.62 
pressure: 1011.49 
dewPoint: 1.26 
time: 08-03-2016 00:00:00 
temperatureMax: 8.09 

所有這些數據都被存儲在一個HashMap與鍵(例如)圖標和值「雨」打印數據。

如何根據其密鑰格式化所有這些數據?我試過這樣的東西

private Map formatter(Map data) { 
    String tmp; 
    for(int i = 0; i < data.size(); i++) { 
     if(data.containsKey("temperatureMax")) { 
      tmp = String.format("%s c TEST", data.get("temperatureMax")); 
      data.put("temperatureMax", tmp); 
     } 
    } 
    return data; 
} 

我以爲這樣的東西會格式8.09只是8,但它沒有做任何事情。 (我試圖做這裏的答案How to update a value, given a key in a java hashmap?狀態)

這是我獲取數據的地方。

public Map dailyReport() { 
    FIODaily daily = new FIODaily(fio); 
    //In case there is no daily data available 
    if (daily.days() < 0) { 
     System.out.println("No daily data."); 
    } else { 
     System.out.println("\nDaily:\n"); 
    } 
    //Print daily data 
    for (int i = 0; i < daily.days(); i++) { 
     String[] value = daily.getDay(i).getFieldsArray(); 
     System.out.println("Day #" + (i + 1)); 
     for (String key : value) { 
      System.out.println(key + ": " + daily.getDay(i).getByKey(key)); 
      dailyData.put(key, daily.getDay(i).getByKey(key)); 
      formatter(dailyData); 
     } 
     System.out.println("\n"); 
    } 
    return dailyData; 
} 
+0

keySet()功能迭代'dailyData'需要爲_just一個day_地圖。您需要一個HashMap數組,然後執行'dailyData [i] .put(...);' –

+0

另外,您爲什麼要將未格式化的數據放入地圖,然後立即更新數據?第一次將格式正確的數據放入地圖會更高效。在將數據放入地圖之前,只格式化數據。 –

回答

0

你應該通過你的地圖鍵使用Map

for (String name:data.keySet()) { 
    if (name.equals("temperatureMax")) { 
     //Do your formatting 
    } 
}