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