我正在尝试将值动态填充到哈希图中,并且只获取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]);
}
有什么方法可以动态添加值?
答案 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]);
}