猿问

java的List中有没有提供list去除重复项的API方法,查了下JDK貌似没有

如题:

java的List中有没有提供list去除重复项的API方法,查了下JDK貌似没有?忘了补充了,我是去除重复的内容。

统一回复:
基本数据类型的去重可以用你们提供的方法,但是对象的去重还需要一个个的遍历迭代。难道不是么?


动漫人物
浏览 740回答 5
5回答

慕容708150

只能说没有直接的API去删除重复项,但利用HashSet不能包含重复项,可以去除list的重复项。public static void removeDuplicate(List list) {      HashSet h = new HashSet(list);      list.clear();      list.addAll(h);      System.out.println(list);}上面这个方法能去除List的重复项,但List原来的顺序会被打乱。如果不想在去除重复项的时候,还想保持原有的顺序,则可以用下面这种方式:public static void removeDuplicateWithOrder(List list) {   Set set = new HashSet();   List newList = new ArrayList();   for (Iterator iter = list.iterator(); iter.hasNext();) {          Object element = iter.next();          if (set.add(element))             newList.add(element);   }   list.clear();   list.addAll(newList);   System.out.println(list); }参考这里

元芳怎么了

不想要重复项,应该用Set吧,干嘛用List补充:拿自己写一个也不累,来来来:List<String> origin = new ArrayList<>();Set<String> handle = new HashSet<>();//把origin里的所有元素放进handle去,因为handle是Set类,会自动去重handle.addAll(al);//把origin清空origin.clear();//再从handle里把去重之后的内容都放回origin里origin.addAll(handle);这下你就high至了

函数式编程

java.util.Set里的项是不可以重复的,你可以利用这一点来去重

心有法竹

通过Set来实现,有很多方法可以选择
随时随地看视频慕课网APP

相关分类

Java
我要回答