Java List<Object>去掉重复对象
来源:互联网 发布:手机自动关闭数据连接 编辑:程序博客网 时间:2024/06/11 09:14
两个list去重,
如果list里面都是基础对象的话,直接去重就好了
list1.removeAll(list2);
list2.addAll(list1);
但是如果list里面是对象的话,我们就要考虑重写list比较的方法了,list用的是equals,思路如下:
Person类
public class Person { private Long id; private String name; public Person(Long id, String name) { this.id = id; this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + '}'; }}
重写Person对象的equals()方法和hashCode()方法:
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; if (!id.equals(person.id)) return false; return name.equals(person.name); } @Override public int hashCode() { int result = id.hashCode(); result = 31 * result + name.hashCode(); return result; }
下面对象去重的代码:
Person p1 = new Person(1l, "jack"); Person p2 = new Person(3l, "jack chou"); Person p3 = new Person(2l, "tom"); Person p4 = new Person(4l, "hanson"); Person p5 = new Person(5l, "胶布虫"); List<Person> persons = Arrays.asList(p1, p2, p3, p4, p5, p5, p1, p2, p2); List<Person> personList = new ArrayList<>(); // 去重 persons.stream().forEach( p -> { if (!personList.contains(p)) { personList.add(p); } } ); System.out.println(personList);
List 的contains()方法底层实现使用对象的equals方法去比较的,其实重写equals()就好,但重写了equals最好将hashCode也重写了。
可以参见:http://stackoverflow.com/questions/30745048/how-to-remove-duplicate-objects-from-java-arraylist
http://blog.csdn.net/growing_tree/article/details/46622579
阅读全文
1 0
- Java List<Object>去掉重复对象-java8
- Java List<Object>去掉重复对象
- Java List<Object>去掉重复对象-java8
- List去掉重复对象
- list去掉重复对象
- list去掉重复的对象
- java中如何去掉list中重复的对象
- 去掉List的重复对象(Arraylist)
- 去掉list中重复的对象
- list对象根据字段去掉重复元素
- java去掉list中的重复元素
- java中两个list去掉重复元素
- JAVA-去掉LIST中重复值
- 用Java写算法技巧(1)去掉List中的重复对象
- (Java 功能代码)java去除List中重复数据之Object对象
- Java判断一个值,或者对象是否存在list集合中和去掉list集合中重复的元素
- List去掉重复数据
- list去掉重复数据
- [Leetcode] 293. Flip Game 解题报告
- 文章标题
- 深度学习在目标跟踪中的应用
- tensorflow 变量生成 变量管理 tf.Variable & tf.get_variable & tf.variable_scope
- 解决IP匹配查询的方案
- Java List<Object>去掉重复对象
- 如何直接运行py文件
- 【排序算法】快速排序
- centOS windows 双系统时间设置
- c# bitmap和base64编码相互转换
- mahout实现的算法集
- PHP面向对象的构造、析构函数
- HDFS文件系统的基本操作 Hadoop权威指南
- Linux命令学习总结: file命令