java List<<Map>> List<Map<String,Object>> 根据根据指定字段去重
//最终去重后的ListMap
List<Map<String, Object>> listMap = new ArrayList<>();
// msp存放过滤后的Map 将ID当key 将去掉的ID的map当value。 因为Map 中的key(键)是唯一的,刚好可以去重。
Map<String, Map> msp = new HashMap<>();
//approveRecordList 是要去重的List,这里用的是从后面先取出来。那就是说会去重后面的值,保留前面的值,因为先存后面的value吗,然后前面有的话就会将前面的覆盖掉,就实现了去重。
for(int i = approveRecordList.size()-1 ; i>=0; i--){
//从后获取 Map
Map map = approveRecordList.get(i);
//我这里指定的是根据ClueID去重。你们可以换成你们要去重复的字段。
String id = (String)map.get("ClueID");
//删除现有Map中你所指定的字段。
map.remove("ClueID");
//存入msp 中,以你所指定的字段值当key,去掉的所指定的那个字段当值。
msp.put(id, map);
}
//其实上面????????已经做好去重啦。我们只需要将key再次循环送到Map中就好啦
Set<String> mspKey = msp.keySet();
for(String key: mspKey){
//获取没有指定字段的Map
Map newMap = msp.get(key);
//然后将指定字段塞入Map
newMap.put("ClueID", key);
//最后返回我们上面写好的ListMap返回。
listMap.add(newMap);
}