大概有几种方式:
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条评论
我要评论