java如何去掉list内的重复对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何去掉list内的重复对象相关的知识,希望对你有一定的参考价值。

参考技术A


list2即为所需要的集合

参考技术B import java.util.ArrayList;
import java.util.List;

public class Ldc001
public static void main(String[] args)

List<String> list = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
list.add("重");
list.add("复");
list.add("的");
list.add("值");
list.add("值");
list.add("值");
list.add("去");
list.add("除");
list.add("重");
list.add("复");
list.add("的");
list.add("值");
list.add("值");
list.add("值");
list.add("去");
list.add("除");
for (int i=0;i<list.size();i++)
if(!list2.contains(list.get(i))) list2.add(list.get(i));

System.out.println(list2);//去队重复后

本回答被提问者采纳

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内的重复对象的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中,如何去掉LIST里的重复元素

Java如何去掉List<实体> 实体里的重复数据

如何去掉一个list中重复的数据

java 怎么把多个list 合并成一个去掉重复的

如何去掉List中的重复内容

java 怎么把多个list 合并成一个去掉重复的