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

查看:159
本文介绍了mysql - java的List中有没有提供list去除重复项的API方法,查了下JDK貌似没有的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如题:

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

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

解决方案

只能说没有直接的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);
 }

参考这里

这篇关于mysql - java的List中有没有提供list去除重复项的API方法,查了下JDK貌似没有的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆