队列的Queue接口和Deque接口的方法概述

  • Post author:
  • Post category:其他
Deque接口继承了Queue接口,Queue接口又继承了Collection接口,Collection接口又继承了Iterable接口,从父类接口,到具体的实现类,

有许多重叠的方法,其中子类接口中的方法要么直接继承父类,要么重写父类方法,但无论哪一种,方法的作用都相似,但还有细微的差别,如可能子类重写的方法会

报出异常,具体参照API。

一、Iterable接口

public interface Iterable<T>

iterator<T> iterator()返回一组在指定类型上迭代的迭代器

二、Collection接口继承了Iterable接口

public interface Collection<E> extends Iterable<E>

1.插入

boolean add(E e)将单个元素添加进集合中

boolean addAll(Collection C)将另一个集合中的元素添加进集合中



2.移除

boolean remove(Object o)将单个元素从集合中移除

boolean removAll(Collection c)将参数集合中的有的元素从此集合中移除

boolean retainAll(Collection c)仅保留参数集合中的有的元素,移除其他元素

void clear()移除此集合中的所有元素

3.检查

boolean contains(Object o)如果集合中包含参数元素,返回true

boolean containsAll(Collection c)如果集合中包含参数集合中所有元素,返回true

boolean isEmpty()如果此集合为空,返回true

int size()返回此集合中的元素数

4.转换为数组

Object[] toArray()返回包含此集合的所有元素的数组

T[] toArray(T[] a)将此集合中的所有元素放置与参数数组中,若集合中的元素类型无法被放置在数组中,则返回一个包含集合类型和参数数组类型的新数组。

若参数数组容量大于此集合元素数,则将剩余元素为null。

5.重写了Object类的方法

boolean equals(Object o)

int hashCode()

三、Queue接口继承了Collection

public interface Queue<E> extends  Collection<E>

此集合为队列,即插入时依次向后,取出时依次取出先插入的元素

1.插入

boolean add(E e)将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true,如果当前没有可用的空间,则抛出 IllegalStateException。

boolean offer(E e)将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add(E),

后者可能无法插入元素,而只是抛出一个异常。

2.移除

E poll()获取并移除此队列的头,如果此队列为空,则返回 null。

E remove()获取并移除此队列的头

3.检查

E element()获取但不移除此队列的头

E peek()获取但不移除此队列的头;如果此队列为空,则返回 null。

四、Deque接口继承了Queue

public interface Deque<E> extends Queue<E>

Deque集合为双端队列,即可从两端进行插入和移除操作

1.插入

void addFirst(E e)将指定元素插入此双端队列的开头

void addLast(E e)将指定元素插入此双端队列的末尾

boolean offerFirst(E e)在不违反容量限制的情况下,将指定的元素插入此双端队列的开头。

boolean offerLast(E e)在不违反容量限制的情况下,将指定的元素插入此双端队列的末尾。

2.移除

E removeFirst()获取并移除此双端队列第一个元素。

E removeLast()获取并移除此双端队列的最后一个元素。

E pollFirst()获取并移除此双端队列的第一个元素;如果此双端队列为空,则返回 null。

E pollLast()获取并移除此双端队列的最后一个元素;如果此双端队列为空,则返回 null。

3.检查

E getFirst()获取,但不移除此双端队列的第一个元素。

E getLast()获取,但不移除此双端队列的最后一个元素。

E peekFirst()获取,但不移除此双端队列的第一个元素;如果此双端队列为空,则返回 null。

E peekLast()获取,但不移除此双端队列的最后一个元素;如果此双端队列为空,则返回 null。

五、常用实现类

LinkedList实现了不仅实现了Deque还实现了List

ArrayDeque实现了Deque

具体的实现类还会有新的方法,但是如果在创建集合时使用Deque和Queue的作为引用类型时,只可以使用这两个类中的方法。




版权声明:本文为qq_36047892原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。