Java基础-Queue(2)AbstractQueue

在Java中Queue类主要存在两个子接口、一个抽象子类AbstractQueue。
AbstractQueue继承AbstractCollection和实现接口Queue,不允许存在null节点,存入和删除节点是如果为null会直接报错。

AbstractQueue实现方法

  • add,直接调用offer方法,如果成功返回true,失败抛出异常
  • remove,直接调用poll方法,如果返回null抛出异常
  • element,直接调用peek方法,如果返回为null,抛出异常,在Queue接口中该方法注释为,element和peek方法类似,都是只是查看队列头部数据,并不取出数据,区别在于peek方法如果没数据返回null,element没数据抛出异常。
  • clear,循环调用poll方法,直到返回为null
  • addAll,如果入参不能为null和本身,循环传入集合,调用add方法,只要有一个添加成功,返回true

AbstractQueue子类

AbstractQueue子类有

  • LinkedTransferQueue
  • SynchronousQueue
  • PriorityQueue
  • LinkedBlockingQueue
  • PriorityBlockingQueue
  • ArrayBlockingQueue
  • LinkedBlockingDeque
  • DelayQueue
  • ConcurrentLinkedQueue

其中部分之类实现了另外的Queue子接口。单一实现AbstractQueue子类有PriorityQueueConcurrentLinkedQueue