我有一个数组列表,里面装满了数千个哈希图,有四个键和值映射到它们,如下所示:
HashMap<String, Object> map = new HashMap<>();
map.put("ID", 1);
map.put("NAME", name);
map.put("WORK_TIME", workTime);
map.put("ACCOUNT", name);
现在有一个数组列表的那些哈希地图,我想总结一下具有相同ID,名称和帐户的人的工作时间,例如:
HashMap<String, Object> map1 = new HashMap<>();
map1.put("ID", 1);
map1.put("NAME", "Edward");
map1.put("WORK_TIME", 20);
map1.put("ACCOUNT", null);
HashMap<String, Object> map2 = new HashMap<>();
map2.put("ID", 1);
map2.put("NAME", "Krzych");
map2.put("WORK_TIME", 6);
map2.put("ACCOUNT", 123);
HashMap<String, Object> map3 = new HashMap<>();
map3.put("ID", 1);
map3.put("NAME", "Edward");
map3.put("WORK_TIME", 13.5);
map3.put("ACCOUNT", null);
HashMap<String, Object> map4 = new HashMap<>();
map4.put("ID", 2);
map4.put("NAME", "Grzesiek");
map4.put("WORK_TIME", 50);
map4.put("ACCOUNT", null);
HashMap<String, Object> map5 = new HashMap<>();
map5.put("ID", 2);
map5.put("NAME", "Edward");
map5.put("WORK_TIME", 12);
map5.put("ACCOUNT", 123);
[..]
ArrayList<HashMap<String,Object>> arrList = new ArrayList<>();
arrList.put..
因此,我应该得到一个包含4个哈希地图的数组列表,其中只有两个具有相同ID和帐户的爱德华哈希地图被合并成一个,工作时间为33.5。
我唯一想到的是迭代所有映射,比较这三个值,然后成功地替换存储在第二个数组列表中的哈希图中的工作时间值,我正在Java 8中工作,我想使用流来完成这一点,这可能吗?还是您看到了更好的解决方案?
拉丁的传说
相关分类