方法一: 利用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);