首页 > 其他分享 >list集合去除重复对象

list集合去除重复对象

时间:2023-08-29 17:31:44浏览次数:35  
标签:name list public stu Student 去除 集合 new id


对象重复是指对象里面的变量的值都相等,并不定是地址。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());
        }
    }
}

 


标签:name,list,public,stu,Student,去除,集合,new,id
From: https://blog.51cto.com/u_16240770/7278639

相关文章

  • list 转 where in
    一、拼stringstrSql=@"SELECTt1.TABLE_NAMETableName,t1.TABLE_COMMENTRemark,t1.TABLE_ROWSTableCount,t2.CONSTRAINT_NAMETableKeyName,t2.column_nameTableKeyFROMinformation_schema.TABLESast1......
  • 集合
    题1:Java 中常用的集合有哪些?Map接口和Collection接口是所有集合框架的父接口Collection接口的子接口包括:Set接口和List接口。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。Map接口的实现类主要有:HashMap、Hashtable、ConcurrentHash......
  • Vue【原创】基于elementui的分组多选下拉框【group-list】
    效果图: 如图分为多选模式和单选模式。 group-select:1<template>2<div>3<el-select4v-model="innerValue"5:placeholder="placeholder"6@change="changeSelect"......
  • ArrayList源码阅读之EMPTY_ELEMENTDATA和DEFAULTCAPACITY_EMPTY_ELEMENTDATA区别
    /***Sharedemptyarrayinstanceusedforemptyinstances.*/privatestaticfinalObject[]EMPTY_ELEMENTDATA={};/***Sharedemptyarrayinstanceusedfordefaultsizedemptyinstances.We*distinguishthisfromEMPTY_ELEMENTDATAtoknowhowmuchtoi......
  • 【Element】el-dialog 内使用 el-image 并添加 preview-src-list 预览,拖拽导致图片预
    现象el-dialog内使用el-image并添加preview-src-list预览,拖拽导致图片预览不完整<el-dialogwidth="500"v-model="visible":title="activeProp?.name"@close="handleClose":draggable="true"//可拖拽......
  • C# List.Reverse 方法使用
    此方法用于Array.Reverse反转元素的顺序usingSystem;usingSystem.Collections.Generic;publicclassExample{publicstaticvoidMain(){List<string>dinosaurs=newList<string>();dinosaurs.Add("Pachycephalosaurus")......
  • ArrayList两个对象之间的赋值
    错误的赋值:list1=list2;这种方法只是将list2的地址赋值给了list1。原先对象会被垃圾回收机制回收掉。正确的赋值:List<String>list1=newArrayList<String>();//方法一:利用集合自带的构造方法List<String>list2=newArrayList<String>(list1);//方法二:利用克隆的方......
  • Day10_集合类型
    1.集合类型_关系运算: 2.集合类型_定义: 3.字典和集合的定义: 4.集合类型_类型转换: 5.交集_合集_差集: 6.对称差集_父子集: 7.集合去重: 8.其他内置方法: ......
  • 使用PS去除PDF水印的简单实用方法
    使用PS去除PDF水印的简单实用方法首先首先用PS打开文件,随后选择【图像】-【调整】-【色阶】,调出色阶面板;接着拖动滑块向左移动,直到水印完全消失,最后点击【确定】这样水印就删除啦! ......
  • Vue【原创】可拖动列表 darg-list
    可拖动排序的列表drag-list,这个比较简单易懂,拿例子直接运行看效果就好了。组件代码:1<template>2<ulclass="list"ref="parentNode"@dragstart="onDragStart"@dragover="onDragOver"@dragend="onDragEnd">3<......