因為HashMap是鍵值對形式,所以一個鍵只對應一個Value,利用這個原理,我們就可以根據某列重復數據做鍵對重復數據進行處理啦~
首先先看看我要處理 的數據
然后我最后想要的結果:
需求:根據groupName每個分組信息只顯示一條數據就可以了
處理代碼如下:
這里我的數據都是從json串中取出來的~
private?List?parseResult(String?result)?{
List?list=new?ArrayList();
HashMap?mymap?=?new?HashMap();
try?{
JSONArray?json?=?new?JSONArray(result);
for(int?i=0;i
JSONObject?jsonobject1=json.getJSONObject(i);
Entity?mGroup?=new?Entity();
mGroup.setiD(Integer.valueOf(jsonobject1.getString("iD")));
mGroup.setGroupName(jsonobject1.getString("groupName"));????????//需要根據曬選數據的列
mGroup.setDepartmentID(Integer.valueOf(jsonobject1.getString("employeeID")));
mymap.put(mGroup.getGroupName(),?mGroup);????????//以分組名為鍵,實體類為值放入hashmap中
}
//從hashmap中把值遍歷出來放入list集合中
for(mGroupWork?group:mymap.values()){
list.add(group);
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
return?list;
}
好了,這樣數據處理就算完成了~過程可能麻煩,但也是一種思路~