Java利用Set集合去重复
需求:
创建一个存储学生对象的集合,存储多个学生对象,使用程序实现在控制台遍历该集合,要求:学生对象的成员变量值相同,我们就认为是同一个对象。
分析:
①定义学生类,创建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集合去重复相关推荐
- List集合中数据用set集合去重复,用set集合去重复数据重写了equals还是没成功!
[用set集合去重复数据,重写equals还是不成功的问题解决思路在文章最后] 需求描述: 因业务需要,通过复杂的代码逻辑从数据库取出数据放入List集合中,涉及多次从访问数据库取出数据放入List集 ...
- java 两个数组去重复数据_Java实现数组去除重复数据的方法详解
本文实例讲述了Java实现数组去除重复数据的方法.分享给大家供大家参考,具体如下: 前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现, ...
- 把如下元素存入List集合 “aaa“ “bbb“ “aaa“ “abc“ “xyz“ “123“ “xyz“ 去掉重复元素 List集合去重复元素方法
题目:把如下元素存入List集合 "aaa" "bbb" "aaa" "abc" "xyz" &qu ...
- java list 数据不重复,Java中List集合去除重复数据的方法
1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i ...
- Java中List集合去除重复数据的六种方法
方法1 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list ...
- list集合去重复元素
//set集合去重,不打乱顺序 public static void main(String[] args){List<String> list = new ArrayList<St ...
- java中json对象去重复_如何忽略Java中JSON对象的多个属性?
@JsonIgnoreProperties杰克逊注解可以用于指定属性的列表或者字段的一类忽略. @JsonIgnoreProperties注释可以放在上面的类声明,而不是上面的各个属性或字段忽略. 语 ...
- java计算list集合中重复对象的次数及for循环内外创建对象
2019独角兽企业重金招聘Python工程师标准>>> 我的需求:计算字符串集合中"数值"出现的次数,然后在for循环中计算"数值"及出现的次 ...
- JAVA中的list去重复
for(int i=0;i<list2.size();i++){ for(int j=list2.size()-1;j>i;j--){ if(list2.get(i).getUnitNam ...
最新文章
- python ~ not 的区别 :前者按位取反,后者是逻辑‘与或非’的‘非’
- 启明云端分享|LVGL官方认证的开发板,到底有多牛
- 建设网站需要的Bootstrap介绍与操作
- mysql linux 数据库文件位置_mysql在linux下修改mysql数据库文件位置
- 关于pc和移动端相同网站的不同url跳转问题
- Spring Boot 学习系列(01)—从0到1,只需两分钟
- Emacs lisp函数调用defun(五)
- jni.h头文件详解一
- beetl html模板,Spring Boot 2 中使用 beetl 模板引擎
- linux 后台进程管理,Linux 后台进程管理利器 Supervisor
- 直播源码网站,自定制配置页面布局和写法
- Ubuntu ADB 环境变量配置
- CentOS 桌面版安装配置(以CentOS 7为例)
- linux微内核,开源微内核seL4microkernel
- 脑袋越大就会越聪明么?
- 安卓音频输出采样率_安卓里LDAC的采样率问题
- Python学习模块 Pygame写游戏二(太空大战)
- iP138版 离线iP数据库ip.txt导入Mysql示例
- uni-app学习 form表单(五)
- 2020年下半年系统架构设计师论文真题