需求:

创建一个存储学生对象的集合,存储多个学生对象,使用程序实现在控制台遍历该集合,要求:学生对象的成员变量值相同,我们就认为是同一个对象。

分析:

①定义学生类,创建HashSet集合对象, 创建学生对象

②把学生添加到集合

③在学生类中重写两个方法,hashCode()和equals(),自动生成即可

④遍历集合(增强for)

***重点:学会重写两个方法,hashCode()和equals()***

代码实现:

SetDemo2类(实现类)

package collection.map.d1_set;import java.util.HashSet;
import java.util.Set;/**目标:让Set集合将重复内容的对象去掉一个(重写hashCode(),equals())*/
public class SetDemo2 {public static void main(String[] args) {//Set集合去重复原因,先判断哈希值,再判断equalsSet<Student> sets=new HashSet<>();Student s1=new Student("图图",20,'男');Student s2=new Student("图图",20,'男');Student s3=new Student("兔兔",27,'男');sets.add(s1);sets.add(s2);sets.add(s3);System.out.println(sets.toString());}
}

Student类(学生类)

package collection.map.d1_set;import java.util.Objects;public class Student {private String name;private int age;private char sex;public Student() {}public Student(String name, int age, char sex) {this.name = name;this.age = age;this.sex = sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public char getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", sex=" + sex +'}';}/**只要两个对象内容一样,结果一定返回true* @param o* @return*/@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age && sex == student.sex && Objects.equals(name, student.name);}@Overridepublic int hashCode() {return Objects.hash(name, age, sex);}
}

运行截图:

Java利用Set集合去重复相关推荐

  1. List集合中数据用set集合去重复,用set集合去重复数据重写了equals还是没成功!

    [用set集合去重复数据,重写equals还是不成功的问题解决思路在文章最后] 需求描述: 因业务需要,通过复杂的代码逻辑从数据库取出数据放入List集合中,涉及多次从访问数据库取出数据放入List集 ...

  2. java 两个数组去重复数据_Java实现数组去除重复数据的方法详解

    本文实例讲述了Java实现数组去除重复数据的方法.分享给大家供大家参考,具体如下: 前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现, ...

  3. 把如下元素存入List集合 “aaa“ “bbb“ “aaa“ “abc“ “xyz“ “123“ “xyz“ 去掉重复元素 List集合去重复元素方法

    题目:把如下元素存入List集合 "aaa" "bbb" "aaa" "abc" "xyz" &qu ...

  4. java list 数据不重复,Java中List集合去除重复数据的方法

    1. 循环list中的所有元素然后删除重复 public   static   List  removeDuplicate(List list)  { for  ( int  i  =   0 ; i ...

  5. Java中List集合去除重复数据的六种方法

    方法1 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list ...

  6. list集合去重复元素

    //set集合去重,不打乱顺序 public static void main(String[] args){List<String> list = new ArrayList<St ...

  7. java中json对象去重复_如何忽略Java中JSON对象的多个属性?

    @JsonIgnoreProperties杰克逊注解可以用于指定属性的列表或者字段的一类忽略. @JsonIgnoreProperties注释可以放在上面的类声明,而不是上面的各个属性或字段忽略. 语 ...

  8. java计算list集合中重复对象的次数及for循环内外创建对象

    2019独角兽企业重金招聘Python工程师标准>>> 我的需求:计算字符串集合中"数值"出现的次数,然后在for循环中计算"数值"及出现的次 ...

  9. JAVA中的list去重复

    for(int i=0;i<list2.size();i++){ for(int j=list2.size()-1;j>i;j--){ if(list2.get(i).getUnitNam ...

最新文章

  1. python ~ not 的区别 :前者按位取反,后者是逻辑‘与或非’的‘非’
  2. 启明云端分享|LVGL官方认证的开发板,到底有多牛
  3. 建设网站需要的Bootstrap介绍与操作
  4. mysql linux 数据库文件位置_mysql在linux下修改mysql数据库文件位置
  5. 关于pc和移动端相同网站的不同url跳转问题
  6. Spring Boot 学习系列(01)—从0到1,只需两分钟
  7. Emacs lisp函数调用defun(五)
  8. jni.h头文件详解一
  9. beetl html模板,Spring Boot 2 中使用 beetl 模板引擎
  10. linux 后台进程管理,Linux 后台进程管理利器 Supervisor
  11. 直播源码网站,自定制配置页面布局和写法
  12. Ubuntu ADB 环境变量配置
  13. CentOS 桌面版安装配置(以CentOS 7为例)
  14. linux微内核,开源微内核seL4microkernel
  15. 脑袋越大就会越聪明么?
  16. 安卓音频输出采样率_安卓里LDAC的采样率问题
  17. Python学习模块 Pygame写游戏二(太空大战)
  18. iP138版 离线iP数据库ip.txt导入Mysql示例
  19. uni-app学习 form表单(五)
  20. 2020年下半年系统架构设计师论文真题

热门文章

  1. Cognos问题解决
  2. 【树形结构】巴基斯坦城市列表 (城市原始数据来自md文件)
  3. 嵌入式Linux 串口编程系列1——基本知识、termios结构体
  4. 操作系统(一)什么是操作系统
  5. esp12f ESP8266芯片引脚
  6. 一进二出宿舍限电模块的基本功能
  7. 关于vuze(毒蛙)linux版本移植的问题
  8. 程序员的中年危机及路在何方?
  9. Halcon——颜色识别提取
  10. pjSIP注册呼叫流程简介