Collection | 集合接口 | 抽象接口,没有直接实现类 |
int size() | 返回元素个数 | |
boolean isEmpty() | 查询是否为空 | |
boolean contains(Object o) | 查询是否包含,通过equals方法判断 | |
boolean containsAll(Collection<?> c) | 批量判断是否包含 | |
boolean add(E e) | 添加元素,方法结束后集合一定包含指定元素, 如果集合禁止重复且元素已包含时将返回false; 当因为插入限制而无法添加时,且不是因为元素已包含时,必须抛IllegalStateException,而不是返回false | |
boolean addAll(Collection<? extends E> c) | 批量添加 | |
boolean remove(Object o) | 删除元素,删除所有和指定对象相等的元素,当至少删除一个元素返回true | |
boolean remove(Collection<?>) | 批量删除 | |
default boolean removeIf(Predicate<? super E> p) | 条件删除 | |
boolean retainAll(Collection<?> c) | 两个集合取交集 | |
Object[] toArray() | 元素导入新建数组 | |
T[] toArray(T[] a) | 元素导入给定数组 | |
void clear() | 清空集合 | |
Iterator<E> iterator() | 返回迭代器 | |
default Splitrator<E> spliterator() | 返回并发迭代器 | |
default Stream<E> stream() | ||
default Stream<E> parallelStream() | ||
Set extends Collection | 数学集合 | 元素不重复,无序,可包含一个null 通过元素的equal方法确定是否重复 注意如果元素是可变类型的,那修改一个元素使其equals另一个元素,那么Set将不保证元素的唯一性 |
@Override boolean add(E e) | 添加元素,当指定元素已包含时,返回false | |
@Override boolean equals(Object o) | 当指定对象也是Set类型,两个Set的元素数目一样,且当前Set包含指定Set所有元素 | |
@Override int hashCode() | 返回哈希值,等于所有元素的哈希值的和,保证了两个Set如果equals那么hashCode一定相同 | |
List extends Collection | 序列 | 元素有先后顺序,元素可重复 |
default void sort(Comparator<? Super E> c) | 排序 | |
default void replaceAll(UnaryOperator<E>) | 更新每个元素为对应的运算结果 | |
E set(int index, E element) | 更新指定位置的元素 | |
void add(int index, E element) | 在指定位置插入元素 | |
E remove(int index) | 删除指定位置的元素 | |
int indexOf(Object o) | 查询和指定对象相等的第一个元素的位置 | |
int lastIndexOf(Object o) | 查询和指定对象相等的最后一个元素的位置 | |
ListIterator<E> listIterator() | 返回列表迭代器 | |
List<E> subList<int fromIndexm, int toIndex> | 返回子列表试图 | |
@Override boolean equals(Object o) | 当指定对象也是List类型,两个List包含相等元素且顺序相同,返回true | |
@Override int hashCode() | 返回哈希值,保证两个List如果equals那么hashCode一定相等,但是hashCode相等的两个List并不一定equals | |
Queue extends Collection | 队列 | 接口只定义对头出队、队尾入队和查询队头三种方法 |
@Override boolean add(E e) | 入队,如果队列满了,则抛IllegalStateException | |
boolean offer(E e) | 入队,如果队列满了,则返回false | |
@Override E remove() | 出队,如果队列空了,则抛NoSuchElementException | |
E poll() | 出队,如果队列空了,则返回null | |
E element() | 查询队头,如果队列空了,则抛NoSuchElementException | |
E peek() | 查询队头,如果队列空了,则返回null | |
BlockingQueue extends Queue | 阻塞队列(线程安全) | 当某些操作需要的条件当前无法满足,但可能在将来某个时间点满足时,该接口均支持4种策略: 1、抛出异常->add 、remove、 element 2、返回特殊值(false、null) ->offer、 poll、 peek 3、有限等待,如果条件一致不满足,等到超时时间,返回特殊值->offer(timeout)、poll(timeout) 4、无限等待,直到条件满足 -> put、 take |
boolean offer(E e, ling timeout, TimeUnit unit) | 入队,如果队列满了,则等待指定的时间,如果仍满则返回false | |
void put(E e) | 入队,如果队列满了,则一直等待,直到队列不满 | |
E poll(long timeout, TimeUnit unit) | 出队,如果队列空了,则等待指定的时间,如果仍空则返回null | |
E take() | 出队,如果队列空了,则一致等待,直到队列不空 | |
int drainTo(Collection<? Super E> c) | 排水方法:所有元素依次转移到给定集合中 | |
int drainTo(Collection<? Super E> c, int maxElements) | 排水方法:指定数量的元素依次转移到给定集合中 | |
Deque extends Queue | 双端队列 | 只能在队尾或者队头入队出队 |
void addFirst(E e) | 对头入队,如果队列满了,则抛IllegalStateException,当使用容量限制的deque时,通常最好使用方法offerFirst | |
void addLast(E e) | 对尾入队,如果队列满了,则抛IllegalStateException,当使用容量限制的deque时,通常最好使用方法offerLast | |
boolean offerFirst(E e) | 队头入队,如果队列满了,则返回false | |
boolean offerLast(E e) | 队尾入队,如果队列满了,则返回false | |
E removeFirst() | 队头出队,如果队列空了,则抛NoSuchElementException | |
E removeLast() | 队尾出队,如果队列空了,则抛NoSuchElementException | |
E pollFirst() | 队头出队,如果队列空了,则返回null | |
E pollLast() | 队尾出队,如果队列空了,则返回null | |
E getFirst() | 查询队头,如果队列空了,则抛NoSuchElementException | |
E getLast() | 查询队尾,如果队列空了,则抛NoSuchElementException | |
E peekFist() | 查询队头,如果队列空了,则返回null | |
E peekLast() | 查询队尾,如果队列空了,则返回null | |
boolean removeFirstOccurrence(Object o) | 删除和指定对象相等的第一个元素,如果发生删除则返回true | |
boolean removeLastOccurrence(Object o) | 删除和指定对象相等的最后一个元素,如果发生删除则返回true | |
void push(E e) | 意象方法,把deque看做栈,表示入栈,如果队列满了,则抛IllegalStateException,实际实现中直接调用addFirst方法 | |
E pop() | 意象方法,效果和removeFirst一样,把deque看做栈,表示出栈,如果队列空了,则抛NoSuchElementException,实际实现中直接调用removeFirst方法 | |
BlockingDeque extends BlockingQueue, Deque | 阻塞双端队列(线程安全) | |
boolean offerFist(E e, long timeout, TimeUnit unit) | 队头入队,如果队列满了,则等待指定的时间,如果仍满则返回false | |
boolean offerLast(E e, long timeout, TimeUnit unit) | 队尾入队,如果队列满了,则等待指定的时间,如果仍满则返回false | |
void putFist(E e) | 队头入队,如果队列满了,则一直等待,直到队列不满 | |
void putLast(E e) | 队尾入队,如果队列满了,则一直等待,直到队列不满 | |
E pollFirst(long timeout, TimeUnit unit) | 对头出队,如果队列空了,则等待指定的时间,如果仍空则返回null | |
E pollLast(long timeout, TimeUnit unit) | 对尾出队,如果队列空了,则等待指定的时间,如果仍空则返回null | |
E takeFirst() | 队头出队,如果队列空了,则一致等待,直到队列不空 | |
E takeLast() | 队尾出队,如果队列空了,则一致等待,直到队列不空 |
java 1.8 集合接口一览表
于 2020-07-14 18:43:11 首次发布