简介
Set集合不包含重复的元素,相同的元素只保存一个,不包含相等的两个元素,Set至多只能包含一个NULL元素。Set的实现类都是基于Map来实现的,其中HashSet是通过HashMap来实现的,TreeSet是通过TreeMap实现的。
类图
遍历方式
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("Lions are the most mighty of all animals in Africa.");
set.add("Those kids always have so much enthusiasm about studying.");
set.add("Calligraphy is the art of beautiful handwriting.");
// 迭代器
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
System.out.println("-------------------------------------------");
// 迭代器for循环
for (iterator = set.iterator();iterator.hasNext();){
System.out.println(iterator.next());
}
System.out.println("-------------------------------------------");
// 加强型for循环
for (String str : set) {
System.out.println(str);
}
}
源码
参照JDK1.8版本
Query Operations
//返回集合的大小
int size();
//集合为空,返回true,否则,返回false
boolean isEmpty();
//判断集合是否包含指定对象o
boolean contains(Object o);
//返回set集合的迭代器
Iterator<E> iterator();
//Returns an array containing all of the elements in this set.
Object[] toArray();
//Returns an array containing all of the elements in this set;
<T> T[] toArray(T[] a);
Modification Operations
//添加一个元素
boolean add(E e);
//删除一个元素
boolean remove(Object o);
Bulk Operations
//Returns true if this set contains all of the elements of the //specified collection.
boolean containsAll(Collection<?> c);
//将指定集合的全部元素添加到当前集合中
boolean addAll(Collection<? extends E> c);
/**
* In other words, removes from this set all of its elements
* that are not contained in the specified collection.
**/
boolean retainAll(Collection<?> c);
/**
* Removes from this set all of its elements that are contained
* in the specified collection (optional operation).
*/
boolean removeAll(Collection<?> c);
/**
* Removes all of the elements from this set (optional operation).
*/
void clear();
Comparison and hashing
//判断是否相等
boolean equals(Object o);
//Returns the hash code value for this set.
int hashCode();