最近遇到一個問題,就是如何過濾一個List<Map<String,Object>> 中重複的Map,廢話不多說,直接上代碼.
//去除重複的Map //cfArraylist 表示重複的 List<Map<String,Object>> //listMap 表示去重複數據後的 List<Map<String,Object>> Map<String, Map> msp = new HashMap<String, Map>(); List<Map<String, Object>> listMap = new ArrayList<Map<String,Object>>(); //把list中的數據轉換成msp,去掉同一id值多餘數據,保留查找到第一個id值對應的數據 for (int i = 0; i < cfArraylist.size(); i++) { Map map = cfArraylist.get(i); String key = (String)map.get("key"); map.remove("key"); msp.put(key, map); } //把msp再轉換成list,就會得到根據某一字段去掉重複的數據的List<Map> Set<String> mspKey = msp.keySet(); for(String key: mspKey){ if(key == null) continue; Map newMap = msp.get(key); newMap.put("f_id", key); listMap.add(newMap); }