Queue接口源码解析

队列

先进先出

入队列:offer

出队列:poll

队头元素:peek

继承:Collection抽象类

源码如下:


package java.util;

public interface Queue<E> extends Collection<E> {
    /**
     * 队列插入元素
     *
     * @param e the element to add
     * @return <tt>true</tt> (as specified by {@link Collection#add})
     * @throws IllegalStateException if the element cannot be added at this
     *         time due to capacity restrictions
     * @throws ClassCastException if the class of the specified element
     *         prevents it from being added to this queue
     * @throws NullPointerException if the specified element is null and
     *         this queue does not permit null elements
     * @throws IllegalArgumentException if some property of this element
     *         prevents it from being added to this queue
     */
    boolean add(E e);

    /**
     * 队列插入元素
     * 插入失败,抛出异常
     * @param e the element to add
     * @return <tt>true</tt> if the element was added to this queue, else
     *         <tt>false</tt>
     * @throws ClassCastException if the class of the specified element
     *         prevents it from being added to this queue
     * @throws NullPointerException if the specified element is null and
     *         this queue does not permit null elements
     * @throws IllegalArgumentException if some property of this element
     *         prevents it from being added to this queue
     */
    boolean offer(E e);

    /**
     * 获取队顶元素,并删除该元素
     * 空的时候,抛出异常
     * @return the head of this queue
     * @throws NoSuchElementException if this queue is empty
     */
    E remove();

    /**
     * 获取队顶元素,并删除该元素
     * 空的时候,返回null
     * @return the head of this queue, or <tt>null</tt> if this queue is empty
     */
    E poll();

    /**
     * 查看队顶元素,但是不删除该元素、
     * 空的时候,抛出异常
     * @return the head of this queue
     * @throws NoSuchElementException if this queue is empty
     */
    E element();

    /**
     * 查看队顶元素,但是不删除该元素、
     * 空的时候,返回 null
     *
     * @return the head of this queue, or <tt>null</tt> if this queue is empty
     */
    E peek();
}
时间: 2024-12-28 09:15:53

Queue接口源码解析的相关文章

Deque接口源码解析

Deque 双向队列 队头:可以插入可以删除 队尾:可以插入可以删除 继承Queue接口 源码如下: package java.util; public interface Deque<E> extends Queue<E> { /** * 队头插入元素 * * @throws 队列满了添加元素,抛出:IllegalStateException * @throws 类型不兼容,抛出:ClassCastException * @throws null队列不允许null,抛出:Null

SortedSet接口源码解析

SortedSet接口为TreeSet做准备 可以实现排序集合 源码 package java.util; public interface SortedSet<E> extends Set<E> { /** * 比较器 */ Comparator<? super E> comparator(); /** * 获取子集 * @throws ClassCastException if <tt>fromElement</tt> and * <t

Set接口源码解析

Set 无须集合 元素不可以重复 接口内源码和上面其他接口很类似 package java.util; public interface Set<E> extends Collection<E> { int size(); boolean isEmpty(); boolean contains(Object o); Iterator<E> iterator(); Object[] toArray(); <T> T[] toArray(T[] a); bool

Map接口源码解析

Map 每个数据项是key-value数据对 key不能重复 接口内代码比较少,都是基本操作 package java.util; public interface Map<K,V> { // Query Operations int size(); boolean isEmpty(); boolean containsKey(Object key); boolean containsValue(Object value); V get(Object key); // Modification

ceph RGW接口源码解析--Rados数据操作

RGW业务处理流程: http reqest --> apache 转 FastCgi module FastCgi module --> radosgw  通过socket请求实现(未确定是否有其它方式) radosgw --> ceph集群  通过socket实现,调用rados接口 1.数据结构 在Rgw_common.h定义了基本的数据结构,并实现了 decode.encode序列化,方便对rados访问 //桶的权限创建资料 struct RGWBucketInfo  {  r

SortedMap接口源码解析

TreeMap的父接口 package java.util; public interface SortedMap<K,V> extends Map<K,V> { Comparator<? super K> comparator(); SortedMap<K,V> subMap(K fromKey, K toKey); SortedMap<K,V> headMap(K toKey); SortedMap<K,V> tailMap(K

Queue(队列)接口和其实现类PriorityQueue(优先级队列)源码解析

前面介绍的Stack是新进后出,而Queue是先进先出的 1.Queue结构 public interface Queue<E> extends Collection<E> { boolean add(E e); boolean offer(E e); E remove(); E poll(); E element(); E peek(); } Queue是一个接口. 2.PriorityQueue源码分析 PriorityQueue是一个优先队列,和先进先出的队列的区别是: 优先

Spring-cloud &amp; Netflix 源码解析:Eureka 服务注册发现接口 ****

http://www.idouba.net/spring-cloud-source-eureka-client-api/?utm_source=tuicool&utm_medium=referral *************************** 先关注下netflix eureka server 原生提供的接口.https://github.com/Netflix/eureka/wiki/Eureka-REST-operations 这是对非java的服务使用eureka时可以使用的r

IdentityServer4源码解析_4_令牌发放接口

目录 identityserver4源码解析_1_项目结构 identityserver4源码解析_2_元数据接口 identityserver4源码解析_3_认证接口 identityserver4源码解析_4_令牌发放接口 identityserver4源码解析_5_查询用户信息接口 identityserver4源码解析_6_结束会话接口 identityserver4源码解析_7_查询令牌信息接口 identityserver4源码解析_8_撤销令牌接口 协议 Token接口 oidc服