大概有几种方式:
1、遍历集合,一一比较,重复的移除。
这种方式可以保证List集合原来的顺序不变。
public static List repeatListWayOne(List<String> list){
for(int i = 0;i < list.size();i++){
for(int j = i+1;j < list.size();j++){
if(list.get(i).equals(list.get(j))){
list.remove(j);
}
}
}
return list;
}2、利用HashSet
HashSet实现了Set接口,不允许出现重复元素。可以基于这个想法,把List集合所有元素存入HashSet对象,接着把List集合元素全部清空,最后把HashSet对象元素全部添加至List集合中,这样就可以保证不出现重复元素。
public static List repeatListWayTwo(List<String> list){
//初始化HashSet对象,并把list对象元素赋值给HashSet对象
HashSet set = new HashSet(list);
//把List集合所有元素清空
list.clear();
//把HashSet对象添加至List集合
list.addAll(set);
return list;
}3、利用TreeSet
TreeSet集合也是实现Set接口,是一个有序的,并且无重复元素集合。
public static List repeatListWayThird(List<String> list){
//初始化TreeSet对象,并把list对象元素赋值给TreeSet对象
TreeSet set = new TreeSet(list);
//把List集合所有元素清空
list.clear();
//把TreeSet对象添加至List集合
list.addAll(set);
return list;
}实际测试,第二种方式可能效率更高一些。当然,你也可以看看是否有更好的办法。
0条评论
我要评论