Set 接口主要有两个实现类,分别是 HashSet 和 TreeSet。
其中,HashSet 根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。
TreeSet 则是以二叉树的方式来存储元素,它可以实现对集合中的元素进行排序。
Set 接口和 List 接口一样,同样继承自 Collection 接口,它与 Collection 接口中的方法基本一致,并没有对 Collection 接口进行功能上的扩充,只是比 Collection 接口更加严格了,添加了禁止重复元素的限制。
与 List接口不同的是,Set 接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。
Set 接口与 List 接口相比没有那么多操作方法,比如:
1、List 接口能直接设置或获取某个元素的值,Set 接口不能。
2、List 接口能直接在指定位置删除、添加元素,Set 接口不能。
3、List 接口有 listIterator() 方法,可以获得 listIterator 对象,Set 接口不能。Set 只能通过 iterator 迭代的方式获取元素。
Set 声明的方法如下表中所示
方法 | 描述 |
---|---|
add() | 添加一个对象到集合中 |
clear() | 从集合中删除所有对象 |
contains() | 如果指定的对象是集合中的元素,则返回 true |
isEmpty() | 如果集合没有元素,则返回 true |
iterator() | 返回集合的 Iterator 对象,该对象可用于检索对象 |
remove() | 从集合中删除指定对象 |
size() | 返回集合中的元素数 |