list集合 去重复 的 3种方法


经常遇到list去重复的要求,   目前遇到的分以下 三种情况

 

第一种  list<String>

//list 去重

public static List removeDuplicate(List list){
List listTemp = new ArrayList();
for(int i=0;i<list.size();i++){
if(!listTemp.contains(list.get(i))){
listTemp.add(list.get(i));
}
}
return listTemp;
}

第二种 list<Object>

有一种是使用set的方式

Set<Object> set = new TreeSet<>(new Comparator<Object>() {
@Override
public int compare(Objecto1, Object o2) {
// 这里按照自己的需求来添加属性即可  
return (o1.getId().compareTo(o2.getId()) );
};
});
set.addAll(newlist);
newlist = new ArrayList<>(set);

 

第三种   list<Object>

//使用 set 去重复会打乱顺序,  实在不行就去用 最普通的去重复
// 这个有点消耗资源的  ..


for (int i = 0; i < newlist.size(); i ++) {
Object outU = newlist.get(i);
for (int j = newlist.size() - 1; j > i; j--) { // 内层循环从 size() -1开始
Object inU = newlist.get(j);
if (inU.getId().equals(outU.getId()) ) {
newlist.remove(j);
}
}

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM