int[] num1 = {1,2,3,4,5,6};
int[] num2 = {7,8,9,10,11,12};
int[] num3 = {13,14,15,16,17,18};
int[] num4 = {19,20,21,22,23,24};
Map<String, int[]> map0 = new HashMap<String, int[]>();
map0.put("d", num1);
map0.put("c", num2);
map0.put("b", num3);
map0.put("a", num4);
Map<String, int[]> map1 = new HashMap<String, int[]>();
map1.put("d", num1);
map1.put("c", num2);
map1.put("b", num3);
map1.put("a", num4);
List<Map<String, int[]>> infoIds = new ArrayList<Map<String, int[]>>();
infoIds.add(map0);
infoIds.add(map1);
想得到结果是
map0与 map1 相同的 key 相加
如 a相加后是38,40,42,44,46,48
b....、c....、d......
返回新的Map<String, int[]> 对象
------解决方案--------------------
int[] num1 = { 1, 2, 3, 4, 5, 6 };
int[] num2 = { 7, 8, 9, 10, 11, 12 };
int[] num3 = { 13, 14, 15, 16, 17, 18 };
int[] num4 = { 19, 20, 21, 22, 23, 24 };
Map<String, int[]> map0 = new HashMap<String, int[]>();
map0.put("d", num1);
map0.put("c", num2);
map0.put("b", num3);
map0.put("a", num4);
Map<String, int[]> map1 = new HashMap<String, int[]>();
map1.put("d", num1);
map1.put("c", num2);
map1.put("b", num3);
map1.put("a", num4);
Map<String, int[]> map2 = new HashMap<String, int[]>();
map2.put("d", num1);
map2.put("c", num2);
map2.put("b", num3);
map2.put("a", num4);
List<Map<String, int[]>> infoIds = new ArrayList<Map<String, int[]>>();
infoIds.add(map0);
infoIds.add(map1);
infoIds.add(map2);
// 需要返回的map对象
Map<String, int[]> newMap = new HashMap<String, int[]>();
Set<String> keys = infoIds.get(0).keySet();
// 遍历map,将其中数组与别一个map相加
for (String key : keys)
{
//新数组
int[] newArr = new int[infoIds.get(0).get(key).length];
//遍历list中的map
for (Map<String, int[]> map : infoIds)
{
int[] array = map.get(key);
for (int i = 0; i < array.length; i++)
{
newArr[i] += array[i];
}
}
newMap.put(key, newArr);
}
System.out.println(newMap.get("a")[0]);