offer,poll,peek
/**
* This class provides skeletal implementations of some {@link Queue}
* operations. The implementations in this class are appropriate when
* the base implementation does <em>not</em> allow <tt>null</tt>
* elements.
Methods
{@link #add add}, {@link #remove remove}, and {@link #element element}
are based on
{@link #offer offer}, {@link * #poll poll}, and {@link #peek peek},
respectively, but throw exceptions instead of indicating failure via <tt>false</tt> or <tt>null</tt> returns.
//这个抽象类的最小实现,需要定义
//offer,poll,peek,size,iterator
* <p>A <tt>Queue</tt> implementation that extends this class must
* minimally define a method {@link Queue#offer} which does not permit
* insertion of <tt>null</tt> elements, along with methods {@link
* Queue#peek}, {@link Queue#poll}, {@link Collection#size}, and
* {@link Collection#iterator}.
Typically, additional methods will be
* overridden as well. If these requirements cannot be met, consider
* instead subclassing {@link AbstractCollection}.
*
* <p>This class is a member of the
* <a href="{@docRoot}/../technotes/guides/collections/index.html">
* Java Collections Framework</a>.
*
* @since 1.5
* @author Doug Lea
* @param <E> the type of elements held in this collection
*/