Set在java中是一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。也就时候说,set是本质上是一个不带重复元素的集合。
在Java中使用Set,可以方便地将需要的类型,以集合类型保存在一个变量中.主要应用在显示列表.
Set接口的主要方法
Add(E e);
如果 set 中尚未存在指定的元素,则添加此元素。
Clear();
移除此 set 中的所有元素。
Equals(Object o);
比较指定对象与此 set 的相等性。
hashCode();
返回 set 的哈希码值。
isEmpty();
如果 set 不包含元素,则返回 true。
Remove(Object o);
如果 set 中存在指定的元素,则将其移除;
Size();
返回 set 中的元素数;
toArray();
返回一个包含 set 中所有元素的数组;
Set中俩个比较常见的已知实现接口包含 HashSet和Treeset。
HashSet是由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。
HashSet的主要方法为:
Add(E e);
如果 set 中尚未存在指定的元素,则添加此元素。
Clear();
移除此 set 中的所有元素。
Clone();
返回此 HashSet 实例的浅表副本:并没有复制这些元素本身;
Contains (Object o);
如果此 set 包含指定元素,则返回 true;
isEmpty();
如果 set 不包含元素,则返回 true。
Iterator ();
返回对此 set 中元素进行迭代的迭代器
Remove(Object o);
如果 set 中存在指定的元素,则将其移除;
Size();
返回此set 中的元素的数量;
TreeSet是基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使 用的构造方法。
TreeSet中常见的使用方法为:
Add(E e);
如果 set 中尚未存在指定的元素,则添加此元素。
Clear();
移除此 set 中的所有元素。
Clone();
返回此 HashSet 实例的浅表副本:并没有复制这些元素本身;
Contains (Object o);
如果此 set 包含指定元素,则返回 true;
Iterator ();
返回对此 set 中元素进行迭代的迭代器;
Remove(Object o);
如果 set 中存在指定的元素,则将其移除;
Size();
返回此set 中的元素的数量;
isEmpty();
如果 set 不包含元素,则返回 true。
Frist();
返回此 set 中当前第一个(最低)元素。
Last();
返回此 set 中当前最后一个(最高)元素。
Lower();
返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。
Higher(E e);
返回此 set 中严格大于给定元素的最小元素;如果不存在这样的元素,则返回 null。
poolFirst();
获取并移除第一个(最低)元素;如果此 set 为空,则返回 null;
poolLast();
取并移除最后一个(最高)元素;如果此 set 为空,则返回 null。
参考文献:
JDK API 1.6.0 中文版。