读书人

雷同的内容合并不相同的保留

发布时间: 2012-09-18 16:21:42 作者: rapoo

相同的内容合并,不相同的保留

工作中要用的把 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="";

?}

}

}

读书人网 >编程

热点推荐