Java集合-Set源码

简介

Set集合不包含重复的元素,相同的元素只保存一个,不包含相等的两个元素,Set至多只能包含一个NULL元素。Set的实现类都是基于Map来实现的,其中HashSet是通过HashMap来实现的,TreeSet是通过TreeMap实现的。

类图

这里写图片描述

源码

参照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();

猜你喜欢

转载自blog.csdn.net/thebigdipperbdx/article/details/81224552