Java集合框架(六):Set 源码分析

1、Set 简述

Java Set 是一个不包含重复元素的集合。它继承于 Collection 接口。 它有以下特点:

  • 与List不同,Java Set不是有序集合,它的元素没有特定的顺序。
  • Java Set不提供对插入元素的位置的控制。
  • 它不能通过索引访问元素,但是可以搜索列表中的元素。
  • Set允许最多仅添加一个null元素。
  • Set接口在Java 8中有一个默认方法:spliterator。

2、Set 类图

Java Set 接口继承了 Collection 接口。 Collection 接口继承了 Iterable 接口。 一些常用的 Set 实现类有 HashSet,LinkedHashSet,TreeSet,CopyOnWriteArraySet 和 ConcurrentSkipListSet。AbstractSet 提供了 Set 接口的基本实现,以减少 Set 实现类的工作量。

在这里插入图片描述

Set 父接口:

Collection<E>, Iterable<E>

Set 子接口:

NavigableSet<E>, SortedSet<E>

Set 实现类:

AbstractSet, ConcurrentHashMap.KeySetView, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet

3、Set 方法

方法 方法描述
boolean add(E e) 如果指定的元素不存在,则将其添加到此集合。如果此set已包含该元素,则保持set不变并返回false。
boolean addAll(Collection<? extends E> c) 如果指定集合中的所有元素不存在当前集合中,则将其添加到此集合中。 否则,addAll操作会修改此集合,使其值为两个集合的并集。 如果操作正在进行时修改了指定的集合,则此操作的行为是不确定的。
void clear() 清空当前结合中的所有元素
boolean contains(Object o) 如果此set包含指定的元素,则返回true。当且仅当此集合包含元素e时才返回true(o == null?e == null:o.equals(e))。
boolean containsAll(Collection<?> c) 如果此set包含指定collection的所有元素,则返回true。 如果指定的集合是当前集合的子集,则返回true。
boolean equals(Object o) 将指定对象与此set进行相等性比较。 如果指定的对象也是一个集合,两个集合具有相同的大小,并且指定集合的每个成员都包含在此集合中&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值