一、Set 接口的介绍
java.util包的 set接口 和 扩展Collection接口是一个无序的对象集合,其中不能存储重复
的值。它是一个实现数学集的接口。此接口包含从Collection接口继承的方法,并添加了限制重复元素插入的特性。有两个接口扩展了集合实现,即SortedSet和NavigableSet
。
在上图中,可导航集扩展了排序集接口。因为集合不保留插入顺序,所以可导航的集合接口提供了通过集合导航的实现。实现可导航集的类是TreeSet,它是一个自平衡树的实现。因此,该接口为我们提供了一种通过该树导航的方法。
Set接口声明为:
public interface Set<E> extends Collection<E>
创建集合对象:
因为Set是一个接口,所以不能直接创建对象。我们总是需要一个扩展这个列表的类来创建对象。而且,在Java 1.5中引入泛型之后,可以限制可以存储在Set中的对象的类型。这个类型安全集可以定义为:
// Obj是存储在Set中的对象的类型
Set<Obj> set = new HashSet<Obj> ();
二、Set 接口的API
Method | Description |
---|---|
add(element) | 此方法用于向集合中添加特定元素。该函数只在指定的元素不在集合中时才添加该元素,否则如果该元素已经在集合中存在,则返回False。 |
addAll(collection) | 此方法用于将上述集合中的所有元素追加到现有集合。元素是随机添加的,不遵循任何特定的顺序。 |
clear() | 此方法用于从集合中删除所有元素,但不删除集合。对集合的引用仍然存在。 |
contains(element) | 此方法用于检查Set中是否存在特定元素。 |
containsAll(collection) | 此方法用于检查集合是否包含给定集合中的所有元素。如果集合包含所有元素,则该方法返回true;如果缺少任何元素,则返回false。 |
hashCode() | 此方法用于获取Set的这个实例的hashCode值。它返回一个整数值,它是Set的这个实例的hashCode值。 |
isEmpty() | 此方法用于检查集合是否为空。 |
iterator() | 这个方法用于返回集合的iterator。集合中的元素以随机的顺序返回。 |
remove(element) | 这个方法用于从集合中删除给定的元素。如果指定的元素在Set中存在,此方法返回True,否则返回False。 |
removeAll(collection) | 此方法用于删除集合中存在于集合中的所有元素。如果该集合因调用而发生更改,则此方法返回true。 |
retainAll(collection) | 此方法用于保留集合中给定集合中提到的所有元素。如果该集合因调用而发生更改,则此方法返回true。 |
size() | 这种方法用于获取集合的大小。这将返回一个表示元素数量的整数值。 |
toArray() | 此方法用于形成与Set的相同元素的数组。 |
三、Set 接口的操作
待续