List中去除重复项的方法

方法一: 利用HashSet不可重复的特性先将List中不重复的数据添加到HashSet中,然后再重新给List复制

List<Map> list = dataService.getStrainItem(userId);
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);

方法二: 第一种方法的进化,原理相同

public static List removeListSameObject(List list){
        Set someSet = new HashSet(list);
        Iterator iterator = someSet.iterator();   
        List relist = new ArrayList();   
        int i = 0;   
        while(iterator.hasNext()){   
            relist.add(iterator.next().toString());   
            i++;   
        }   
        return relist;   
}

方法三: 回想考虑,既然要去重复,那干脆给List添加值的时候就不要添加重复值就可以啦!这样也省了效率

List list=new ArrayList();
if (!list.Contains("xxx"))
{
     list.Add("xxx");
}

方法四: 双层循环

List list = new ArrayList();
for (int i = 0; i < list.size(); i++){//外循环是循环的次数
  for (int j = list.size() - 1 ; j > i; j--){//内循环是 外循环一次比较的次数
    if (list.get(i) == list.get(j)){
      list.remove(j);
    }
  }
}

方法五:

  • A.removeAll(B);
  • A.addAll(B);
原文地址:https://www.cnblogs.com/daisyleamo/p/3137552.html