在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 使用import com.google.common.collect.Maps;

使用import com.google.common.collect.Maps;如何優(yōu)化這段代碼

private void setBearCapacityData(List<List> bearCapacityList, Map<String, Object> data) {
        //System.out.println("bearCapacityList = " + bearCapacityList);

        List<Double> cupPercentageList = new ArrayList<>();
        List<Double> storagePercentageList = new ArrayList<>();
        List<Double> diskPercentageList = new ArrayList<>();

        Map<String,Object> useableMaps = Maps.newHashMap();
        Map<String,Object> useableMaps1 = Maps.newHashMap();
        Map<String,Object> useableMaps2 = Maps.newHashMap();

        List<Map<String,Object>> useableDataList = Lists.newArrayList();

        for (Object object0: bearCapacityList.get(0)) {
            CpuUseable cpuUseable = (CpuUseable)object0;
            cupPercentageList.add(cpuUseable.getPercentage());
        }

        useableMaps.put("name","cpu可用率");
        useableMaps.put("percentage", cupPercentageList);
        useableDataList.add(useableMaps);

        for (Object object1: bearCapacityList.get(1)) {
            StorageUseable storageUseable = (StorageUseable)object1;
            storagePercentageList.add(storageUseable.getPercentage());
        }

        useableMaps1.put("name","內(nèi)存可用率");
        useableMaps1.put("percentage", storagePercentageList);
        useableDataList.add(useableMaps1);

        for (Object object2: bearCapacityList.get(2)) {
            DiskUseable diskUseable = (DiskUseable)object2;
            diskPercentageList.add(diskUseable.getPercentage());
        }
        useableMaps2.put("name","磁盤可用率");
        useableMaps2.put("percentage", diskPercentageList);
        useableDataList.add(useableMaps2);

        data.put("bearCapacityData", useableDataList);

    }

圖片描述

回答
編輯回答
夢囈
String[] names = new String[] {"cpu可用率", "內(nèi)存可用率", "磁盤可用率"};
List<Map<String,Object>> useableDataList = Lists.newArrayList();
for (int i = 0; i < names.length; i++) {
    Map<String, Object> map = Maps.newHashMap();
    List<Double> list = new ArrayList<>();
    for (Object obj : bearCapacityList.get(i)) {
        Method method = obj.getClass().getMethod("getPercentage");
        // 加個強轉(zhuǎn)唄
        list.add((Double) method.invoke(obj));
    }
    // 下邊這兩句我記得好像是可以用 
    // Maps.of("name", names[i], "percentage", list);
    // 來寫,但是我忘了谷歌這個包還有沒有這個接口了。
    map.put("name", names[i]);
    map.put("percentage", list);
    // 這里寫錯了,應(yīng)該是 useableDataList 
    useableDataList .add(map);
}
2018年7月31日 21:32