經常遇到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);
}
}
}