经常遇到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);
}
}
}
原文:https://www.cnblogs.com/Mr-Y1907/p/12218495.html