java 1.8 集合接口一览表

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()队尾出队,如果队列空了,则一致等待,直到队列不空
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值