JAVA中,如何去掉LIST里的重复元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中,如何去掉LIST里的重复元素相关的知识,希望对你有一定的参考价值。
如题
最好的办法是用Set,因为Set里面存放的数据是不重复的。如果你不想用Set,那还可以向下面这样处理。
List list_tmp = new ArrayList(); //建立一个用于临时存放不重复list元素的List集合。
for(Object obj:list)
//可以根据需要,在这里加上强制转型。
//如list里面存放的是一个User对象,那么加上User u = (User) obj;
if(!list_tmp.contains(obj)) //注意contains方法是通过equals方法进行比较的所以你要根据你自己的需要看是否需要重写list对象里面的equals方法。
list_tmp.add(obj);//如果上面加了强制转型,这里需要写list_tmp.add(u);
参考技术A ArrayList list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("2");
list.add("1");
HashSet hs = new HashSet();
for(int i=0;i<list.size();i++)
hs.add(list.get(i));
Iterator it = hs.iterator();
while(it.hasNext())
String s = (String) it.next();
System.out.print(s+" ");
运行打印的结果是:3 2 1
这样就可以了。就是遍历一遍List,在遍历的时候把元素放到HashSet里面去,因为HashSet不允许重复的数据,所以自动会把重复的数据删除。 参考技术B 把List中的元素倒到Set集合里,Set集合可以自动过滤重复元素 参考技术C 可以直接利用set得唯一性来解决
List list = new ArrayList();
Set set = new TreeSet();;
set.addAll(list);//OK 参考技术D SET应该不可以吧。他们都是collection对象,放到MAP里面,需要遍历。一个一个都加入MAP。然后转换成List就可以了。
以上是关于JAVA中,如何去掉LIST里的重复元素的主要内容,如果未能解决你的问题,请参考以下文章