如何使用set集合去重

我们都知道,set集合是无序的,这样也导致set集合里面的元素是不能重复的,因为这一个特性,所以我们经常用set集合进行去重操作,我们下面以一个简单的例子说明set集合是如何进行去重的。

创建去重对象

首先,我们需要创建去重的对象,这里我创建一个Student类。为了方便,我没有对此类进行封装,同时写出该类的全参构造方法,方便后面的赋值。同时重写toString()方法,方便后面打印的效果,否则默认的toString()打印的是地址,然后重写equals()方法和hashCode()方法,否则后面进行比较的是哈希值,哪怕后面的名字,年龄,性别都相同也会因为哈希值不同而导致判断不同,重写之后只要名字,年龄,性别都相同,那么值就是相同的。

public class Student {String name;//姓名int age;//年龄char sex;//性别public Student(String name, int age, char sex) {this.name = name;this.age = age;this.sex = sex;}
//重写toString()方法 IDEA使用快捷键Alt+insert,选择toString即可完成重写@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", sex=" + sex +'}';}
//重写equals()方法和hashCode()方法 IDEA使用快捷键Alt+insert,选择equals() and hashCode()@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);}
}

创建集合对象

因为set是一个接口,所以不能创建对象,我们通过set的实现类Hashset以多态形式进行创建

public class TestSet {public static void main(String[] args) {HashSet<Student> set = new HashSet<>();//创建集合对象,泛型为我们去重对象StudentStudent s1 = new Student("张三", 30, '男');//创建Student对象并录入值Student s2 = new Student("李四", 33, '男');Student s3 = new Student("张三", 30, '男');Student s4 = new Student("王五", 37, '男');set.add(s1);//将Student类型的值添加到集合里set.add(s2);set.add(s3);set.add(s4);System.out.println(set);//输出集合}
}

输出结果

我们可以发现,集合里面有三组数据,明明我们添加了4个Student类型数据,为什么集合里只有3个,原因是set集合不允许重复的元素,s1和s3相同,所以只保存一次,以此来达到去除重复元素的效果

以上就是set集合去重的一个简单案例。

使用set集合去除重复元素相关推荐

  1. java 集合自定义元素_java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。...

    import java.util.*;/*将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据封装 ...

  2. scala 去除重复元素_Scala程序从列表中删除重复项

    scala 去除重复元素 List in Scala is a collection that stores data in the form of a liked-list. The list is ...

  3. Arraylist去除重复元素

    由于list集合的特点,有序,有索引(也就是有下标),元素可以重复,所以Arraylist是元素也是可以重复的.但是我们用总是要用到去除重复元素这个点,简单介绍一下方法. Arraylist去除重复元 ...

  4. java arraylist 重复_Java中ArrayList去除重复元素

    Java中ArrayList去除重复元素 //删除ArrayList中重复元素 public   static   void  removeDuplicate(ArrayList list)   { ...

  5. java list 重复对象_list集合去除重复对象的实现

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

  6. 如何去掉list集合中重复元素大全

    如何去掉list集合中重复元素大全 创建实体对象 模拟集合 方法一:遍历实体类的每一个属性 方法二:利用list中contains方法去重 方法三:java 8中流式去重操作 方法四:HashSet去 ...

  7. python列表如何去除重复_python列表如何去除重复元素(转自先锋教程网)

    python列表如何去除重复元素? 例子,python列表去重复. 复制代码代码示例: #第一种def delRepeat(liebiao): for x in liebiao:  while lie ...

  8. 使用HashSet去除重复元素的集合

    比如,某一个阵列中,有重复的元素,我们想去除重复的,保留一个. HashSet<T>含不重复项的无序列表,从MSDN网上了解到,这集合基于散列值,插入元素的操作非常快. 你可以写一个方法: ...

  9. java中set集合如何去除重复元素

    set集合是可以重复的元素集合; 用set集合添加一个学生对象元素时: import java.util.ArrayList; import java.util.HashSet; import jav ...

最新文章

  1. [转]ASP.NET 缓存(十六)--检索缓存项的值
  2. 【OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )
  3. ASIO协程彻底转变你的思维
  4. 云栖·追踪云原生|Serverless入围阿里云十大核心技术
  5. JS实现失去焦点判断input内容是否大于0
  6. Linux 命令之 chfn -- 修改用户信息
  7. mysql 重置密码语音_数字语音信号处理学习笔记语音信号的同态处理(2)
  8. Introduction to Computer Networking学习笔记(二十七):BitTorrent
  9. 极速office(excel)根据身份证号如何提取年龄
  10. 批量翻译软件免费【2022最新版】
  11. PDFObject的使用(转)
  12. 安卓导航车机root方法_车机测试 | 测试比亚迪e1车机系统
  13. SpringData JPA联表分页查询需要使用countQuery属性
  14. TensorFlow实现中文字体分类
  15. cgb2107-day17
  16. 最漂亮的人是为梦想而努力的人
  17. zkSnark教程:从方程到验证
  18. hgame-week1-web-fujiwara tofu shop
  19. Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行
  20. 去除CSDN博客图片中的水印

热门文章

  1. CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar实现渐变透明的状态栏
  2. 学者该如何快速入门Python?内附十年Python程序员详细学习攻略
  3. 基于活动场景签到微会动平台上线发布两款酷炫微信现场扫码签到产品
  4. 【数学】 隐函数求导法则
  5. 慎用php的array_search函数
  6. Arithmetic circuit
  7. 病毒防治:清除***从它的寄生地开始
  8. android手机api等级_什么是Android API 级别?
  9. QQ空间迁移_【深度解锁数据恢复】
  10. 过采样与欠采样图像重采样(上采样下采样)