有没有一种方法可以将值动态填充到哈希图中

时间:2020-02-26 15:05:42

标签: java

我正在尝试将值动态填充到哈希图中,并且只获取im保留在映射中的最后一个值

for (int i = 0; i < 22; i++) {
    for (int j = 0; j < col.length; j++) {
        String[] Temp = finval.get(i);

        ls[i] = JasperRepo.getMapObject();
        ls[i].put(columnsList[j], Temp[j]);
    }

    m.add(ls[i]);
}

有什么方法可以动态添加值?

2 个答案:

答案 0 :(得分:1)

这是一个简单的演示。您可以通过使用地图的某些高级功能来使其更加简洁,但是想法是相同的。它将偶数和奇数分开。


        Map<String, List<Integer>> map = new HashMap<>();
        String key;
        for (int i = 0; i < 10; i++) {
            // assign key based on value
            if (i % 2 == 0) {
                key = "evens";
            } else {
                key = "odds";
            }

           // retrieve or create the list for the items.
            List<Integer> list = map.get(key);
            if (list == null) {
                list = new ArrayList<>();
                map.put(key, list);
            }
            // add the item to the list
            list.add(i);
        }
        map.forEach((k,v)-> System.out.println(k + " -> " + v));

它打印以下内容:

奇数-> [1、3、5、7、9]
偶数-> [0,2,4,6,8]

答案 1 :(得分:0)

您是否要更新ls[i]的值,以便在重复键的情况下使它们递增?

如果是,您可以尝试以下方法:

    if (!ls[i].containsKey(columnsList[j])) {
        ls[i].put(columnsList[j], Temp[j]);
    } else {
        ls[i].put(columnsList[j], ls[i].get(columnsList[j]) + Temp[j]);
    }