Set集合(HashSet)

本次任务完成时间:2019年5月24日
开发工具与关键技术:MyEclipse 10、Java
作者:杨裙
一、HashSet
1、HashSet是Set集合里的一个实现类,当添加重复的元素时,则会添加操作失败,add()方法返回false,且新元素不会被加入。
2、当添加元素的时候,是没有顺序的,set集合通常是记不住元素的添加顺序的,HashSet集合可以保证元素的唯一性。集合元素值可以放入null,但只能放入一个null;
如下图:
在这里插入图片描述
3、HashSet不是同步的(不是线程安全的),如果多个线程同时访问一个HashSet,如果有两个或两个以上线程同时修改了HashSet集合时,则必须通过代码来保证其同步。HashSet内部数据结构是哈希表。
4、HashSet为了保证集合的元素唯一性,是通过对象的hashCode和equals方法来完成对象唯一性的。如果对象的hashCode的值不同,那么就不用判断equals方法,如果对象的hashCode值相同,那么要再次判断equals方法是否为true,如果返回的为true,那么就会视为相同的元素,不会储存,如果返回的为false,那么就视为不同元素,进行存储。
5、Set接口中的方法和Collection中的方法一致。Set接口取出的方式只有一种,迭代器。
6、HashSet的几个方法
• add(E e) :用来添加元素。
• clear() :从集合中移除元素。
• contains(object o):判断集合是否包含指定元素。
• isEmplty():判断集合中的元素是否为空。
• iterator():返回对此set中元素进行迭代的迭代器。
• remove():如果指定元素在集合中有存在,那么就将其移除。
• size():返回set中的元素的数量。
如下图:
在这里插入图片描述
7、因为HashSet是没有顺序的,所以不能用Comparable 和 Comparator的排序方法来进行排序。
8、需要注意的是,如果元素要存储到HashSet集合中,必须要覆盖HashCode方法和equals方法。这是建立对象判断是否相同的依据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值