相同的内容合并,不相同的保留
工作中要用的把 meberId ?相同的内容合并,不相同的保留 ,我写个算法看看大家有没有更容易的写法!
?
? ? ? ? ? ? ? ArrayList al=new ArrayList();
HashMap hm= new HashMap();
hm.put("memberId", "0001");
hm.put("memberName", "shi");
hm.put("memberAddress", "beijing");
al.add(hm);
hm= new HashMap();
hm.put("memberId", "0001");
hm.put("memberName", "shi2");
hm.put("memberAddress", "beijing2");
al.add(hm);
hm= new HashMap();
hm.put("memberId", "0002");
hm.put("memberName", "shi");
hm.put("memberAddress", "beijing");
al.add(hm);
//遍历
Object[] objs=al.toArray();
HashSet hset= new HashSet();
for(int i=0;i<objs.length;i++){
String tem=((HashMap)objs[i]).get("memberId").toString();
hset.add(tem);
}
Object[] hsarray= hset.toArray();
Object[] reObject=new Object[hsarray.length];
for(int i=0;i < hsarray.length;i++){
String keyVal= hsarray[i].toString();
String temName="";
? ? ? ? ? ? ? ? ? ??
for(int j1=0;j1<objs.length;j1++){
String tem=((HashMap)objs[j1]).get("memberId").toString();
if(keyVal.equals(tem)){
temName+=((HashMap)objs[j1]).get("memberAddress")+"//";
((HashMap)objs[j1]).put("memberAddress", temName);
reObject[i]=objs[j1];
}else{
temName="";
?}
}
}