Set:
一种不可以包含重复元素的Collection,且最多包含一个null元素
方法 | 内容 |
---|---|
boolean add(E o) | 如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。 |
boolean addAll(Collection<? extends E> c) | 如果 set 中没有指定 collection 中的所有元素,则将其添加到此 set 中(可选操作)。 |
void clear() | 移除 set 中的所有元素(可选操作)。 |
boolean contains(Object o) | 如果 set 包含指定的元素,则返回 true。 |
boolean containsAll(Collection<?> c) | 如果此 set 包含指定 collection 的所有元素,则返回 true。 |
boolean equals(Object o) | 比较指定对象与此 set 的相等性。 |
int hashCode() | 返回 set 的哈希代码值。 |
boolean isEmpty() | 如果 set 不包含元素,则返回 true。 |
Iterator iterator() | 返回在此 set 中的元素上进行迭代的迭代器。 |
boolean remove(Object o) | 如果 set 中存在指定的元素,则将其移除(可选操作)。 |
boolean removeAll(Collection<?> c) | 移除 set 中那些包含在指定 collection 中的元素(可选操作)。 |
boolean retainAll(Collection<?> c) | 仅保留 set 中那些包含在指定 collection 中的元素(可选操作)。 |
int size() | 返回 set 中的元素数(其容量)。 |
Object[] toArray() | 返回一个包含 set 中所有元素的数组。 |
T[] toArray(T[] a) | 返回一个包含 set 中所有元素的数组;返回数组的运行时类型是指定数组的类型。 |
注意:
在Set中这些方法的使用与在List中的使用方法相同.
hashSet:
1.基于哈希表(HashMap)实现.
2.不允许重复,最多可以拥有一个元素为null.
3.顺序是可变的.
4.排除重复元素是通过equals()方法类检查对象是否相同的.
5.添加元素时把元素作为HashMap的Key储存,HashMap的value使用一个固定的Object对象
6.判断两个对象是否相同时,需要向判断两个对象的hashCode是否相同(如果相同,也不一定是同一个对象),当相同时,还需要用equals()方法进行判断,
7.要判断自定义对象是否相同时,要对对象所在类的hashCode和equals()方法进行重写.