如何過濾List<Map<String,Object>> 中的重複Map

最近遇到一個問題,就是如何過濾一個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);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章