如何通过键来格式化地图数据

时间:2016-03-05 23:35:46

标签: java hashmap

我试图根据键来格式化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中,其中包含键(例如)图标和值" rain"。

如何根据密钥格式化所有这些数据?我试过这样的事情

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;
}

1 个答案:

答案 0 :(得分:0)

您应该使用keySet()

Map功能遍历地图密钥
for (String name:data.keySet()) {
    if (name.equals("temperatureMax")) {
        //Do your formatting
    }
}