`

list集合去除重复对象

    博客分类:
  • java
 
阅读更多

对象重复是指对象里面的变量的值都相等,并不定是地址。list集合存储的类型是基础类型还比较好办,直接把list集合转换成set集合就会自动去除。

   当set集合存储的是对象类型时,需要在对象的实体类里面重写public boolean equals(Object obj) {} 和 public int hashCode() {} 两个方法。

  实体类

[html] view plain copy
 
print?
  1. public class Student {  
  2.   
  3. public String id;  
  4. public String name;  
  5. public Student() {  
  6. }  
  7. public Student(String id,String name) {  
  8. this.id = id;  
  9. this.name = name;  
  10. }  
  11. public String getId() {  
  12. return id;  
  13. }  
  14. public void setId(String id) {  
  15. this.id = id;  
  16. }  
  17. public String getName() {  
  18. return name;  
  19. }  
  20. public void setName(String name) {  
  21. this.name = name;  
  22. }  
  23. @Override  
  24. public boolean equals(Object obj) {  
  25. Student s=(Student)obj;   
  26. return id.equals(s.id) && name.equals(s.name);   
  27. }  
  28. @Override  
  29. public int hashCode() {  
  30. String in = id + name;  
  31. return in.hashCode();  
  32. }  
  33. }  
public class Student {

public String id;
public String name;
public Student() {
}
public Student(String id,String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
Student s=(Student)obj; 
return id.equals(s.id) && name.equals(s.name); 
}
@Override
public int hashCode() {
String in = id + name;
return in.hashCode();
}
}

测试类

[html] view plain copy
 
print?
  1. import java.util.ArrayList;  
  2. import java.util.HashSet;  
  3. import java.util.List;  
  4. import java.util.Set;  
  5.   
  6. public class QuSame {  
  7.       
  8.     public static void main(String[] args) {  
  9.         List<Student> stu = new ArrayList<Student>();  
  10.         stu.add(new Student("1","yi"));  
  11.         stu.add(new Student("3","san"));  
  12.         stu.add(new Student("3","san"));  
  13.         stu.add(new Student("2","er"));  
  14.         stu.add(new Student("2","er"));  
  15.         //set集合保存的是引用不同地址的对象  
  16.         Set<Student> ts = new HashSet<Student>();  
  17.         ts.addAll(stu);  
  18.           
  19.         for (Student student : ts) {  
  20.             System.out.println(student.getId()+"-"+student.getName());  
  21.         }  
  22.     }  
  23. }  
分享到:
评论

相关推荐

    list集合去除重复对象的实现

    这里我们将详细讨论如何在`List`集合中去除重复对象的实现,特别是针对对象类型的集合。 首先,我们要明确一点:在Java中,当我们说两个对象是重复的,通常是指它们的属性值相等,而不是指它们在内存中的引用地址...

    list去掉重复对象

    一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。

    去掉list中的重复对象

    在编程领域,尤其是在Java开发中,我们经常遇到需要处理数据集合,例如列表(List),去除其中的重复元素。"去掉list中的重复对象"这个话题是一个常见的需求,特别是在处理业务数据时,确保数据的唯一性至关重要。这...

    两个list比较 取不同的对象

    2. **比较与去除重复项**: - 使用双重循环来逐个比较两个列表中的元素。 - 如果发现两个列表中有相同的`Student`对象,则从第一个列表中移除该对象。 - 移除后需要更新循环变量,以避免遗漏元素。 3. **使用`...

    Java中List集合对象去重及按属性去重的8种方法

    【Java中List集合对象去重及按属性去重的8种方法】 在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性...

    Android List删除重复数据

    HashSet 是一种不允许重复元素的集合,因此可以用来删除重复数据。首先将列表转换为 HashSet,然后将 HashSet 转换回列表。这种方法的时间复杂度为 O(n),因此适合大型列表。 ```java public static void remove...

    java中List对象列表实现去重或取出及排序的方法

    HashSet是一个不允许重复元素的集合,添加元素时,会自动忽略重复元素。 ```java List&lt;Student&gt; list = new ArrayList(); // 添加元素到list Set&lt;Student&gt; set = new HashSet(list); list.clear(); list.addAll(set...

    List集合多个复杂字段判断去重的案例

    List集合多个复杂字段判断去重的案例 在 Java 编程中,List 集合是我们常用的数据结构之一。当我们需要对 List 集合进行去重操作时,通常的做法是将其转换为 Set 集合,因为 Set 集合不允许重复元素。但是,事情并...

    两个集合比较(新增、编辑、删除)

    在IT领域,集合比较是一...通过理解并熟练运用这些方法,我们可以有效地比较和操作两个List集合,无论是查找新增、编辑还是删除的元素。在实际项目中,这种能力对于数据同步、日志分析、版本控制等多个场景都至关重要。

    如何去掉list集合中重复的元素?.docx

    Set接口下的集合类如HashSet不存储重复元素,可以方便地去除列表中的重复项。将List转换为Set,然后再转换回List即可: ```java List&lt;PenBean&gt; uniquePenBeanList = new ArrayList(new HashSet(penBeanList)); ``` ...

    Java List集合的应用.rar

    Java List集合是Java编程语言中一个非常重要的数据结构,它属于集合框架的一部分,主要用于存储一组有序的、可重复的对象。List接口提供了许多方法,使得在处理列表数据时具有很高的灵活性和效率。在这个“Java List...

    C#查找列表中所有重复出现元素的方法

    方法内部创建了一个新的`List&lt;T&gt;`对象`duplicates`来存储找到的重复元素。然后,通过一个for循环遍历列表,使用索引`i`访问当前元素。如果当前元素`this[i]`等于`inputValue`,就将其添加到`duplicates`列表中。最后...

    易语言仿java集合 list map源码

    本主题聚焦于易语言中的面向对象编程,特别是模仿Java集合框架的List和Map接口的实现。这些数据结构在编程中扮演着核心角色,用于组织和管理数据。 首先,让我们深入了解易语言的面向对象编程概念。面向对象编程...

    List列表拒绝添加重复信息

    将List转换为Set,可以自动去除重复项。例如: ```python my_list = [1, 2, 3, 2, 4, 3] my_set = set(my_list) ``` 在这个例子中,`my_set`将只包含`{1, 2, 3, 4}`,因为重复的2和3已被移除。 如果我们仍然需要...

    Java中ArrayList去除重复元素(包括字符串和自定义对象)

    Java中ArrayList去除重复元素(包括字符串和自定义对象) 在Java中,ArrayList是一种常用的集合类,但是在实际应用中,我们经常会遇到重复元素的问题,例如字符串或自定义对象的重复元素。在本文中,我们将介绍如何...

    java去除集合中重复元素示例分享 java去除重复

    在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解和应用这个概念。 Java集合去重示例的需求背景 -----------------------...

    JavaSE专题-List集合.doc

    List集合是其中的一个重要接口,它代表了一个有序的、允许元素重复的序列。List接口扩展了Collection接口,提供了更丰富的操作方法,使得在处理序列数据时更加灵活。 1. **集合概念** - 集合是Java API提供的类,...

    List列表拒绝添加重复信息VB6.0源代码.rar

    - 如果需要高效地检查重复,可以考虑使用哈希表(Dictionary对象)或集合(Collection对象),这两种数据结构在VB6.0中提供了快速的成员查找。 3. **VB6.0源代码分析**: - 源代码可能包含一个事件处理程序,如...

    实验05 Java集合.doc

    2. **List接口**:List接口是一个有序的集合,允许包含重复元素。在实验中,我们使用了ArrayList和LinkedList这两个实现类。ArrayList基于动态数组,随机访问速度快,但在插入和删除元素时,特别是中间位置,效率较...

    javalist.zip_list集合 java

    "javalist.zip_list集合 java"这个标题暗示我们将探讨Java中的List集合以及它的应用。描述中提到“java中集合list的应用非常重要”,这确实不假,因为List在处理有序数据时具有广泛的应用场景。 List接口位于java....

Global site tag (gtag.js) - Google Analytics