`

list集合去除重复对象

 
阅读更多

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

 

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

 

代码实例:

public class Student {
    public String id;
    public String name;
    public Student() {
    }
    public Student(String id,String name) {
        this.id = id;
        this.name = name;
    }

    // 省略get、set方法
    ......
    @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();
    }
}

 

测试:

public class Test {
    public static void main(String[] args) {
        List<Student> stu = new ArrayList<Student>();
        stu.add(new Student("1","yi"));
        stu.add(new Student("3","san"));
        stu.add(new Student("3","san"));
        stu.add(new Student("2","er"));
        stu.add(new Student("2","er"));
        // set集合保存的是引用不同地址的对象
        Set<Student> ts = new HashSet<Student>();
        ts.addAll(stu);

        for (Student student : ts) {
            System.out.println(student.getId()+"-"+student.getName());
        }
    }
}

 

http://blog.csdn.net/emoven/article/details/12999265

分享到:
评论

相关推荐

    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