java 查找list中重复数据实例详解
java查找list中重复数据实例详解
需求:
查找一个List集合中所有重复的数据,重复的数据可能不止一堆,比如:aa,bb,aa,bb,cc,dd,aa这样的数据。如果有重复数据,则给这些重复数据加上编号,上述数据改为:aa1,bb1,aa2,bb2,cc,dd.
算法如下:
publicstaticvoidsame(List<String>list){ String[]indexArr; Map<String,String>map=newHashMap<String,String>(); for(inti=0;i<list.size();i++){ Stringkey=list.get(i); Stringold=map.get(key); if(old!=null){ map.put(key,old+","+(i+1)); }else{ map.put(key,""+(i+1)); } } Iterator<String>it=map.keySet().iterator(); intindex=-1; while(it.hasNext()){ Stringkey=it.next(); Stringvalue=map.get(key); if(value.indexOf(",")!=-1){ System.out.println(key+"重复,行:"+value); indexArr=value.split(","); for(inti=0;i<indexArr.length;i++){ index=Integer.parseInt(indexArr[i])-1; list.set(index,list.get(index)+(1+i)); } } } for(Stringval:list){ System.out.println("val="+val); } System.out.println(".................."); }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!