Queue是队列接口,用于保存即将进行处理的元素,除了基本的Collection定义的方法之外,队列还提供了其他的插入、提取和移除操作。每个方法都存在两种形式:一种抛出异常(操作出错时),一种返回一个特殊值(null或者false),后面的这种操作是专门为拥有容量限制的Queue为设计的。
1 boolean add(E e); 2 boolean offer(E e); 3 E remove(); 4 E poll(); 5 E element(); 6 E peek();
第一个方法:add(E e)用于插入指定元素到队列中,如果不存在容量限制的情况下。如果执行成功返回true,如果执行失败抛出IllegalStateException异常
第二个方法:offer(E e)用于插入指定元素到队列中,如果不存在容量限制的情况下。当使用的是容量受限的队列,使用该方法将优于add方法。如果执行成功返回true,否则返回false。
第三个方法:remove()用于移出队列顶部的元素,并将移除的元素返回,如果队列是空的,则会抛出一个NoSuchElementException异常
第四个方法:poll()用于移除队列顶部的元素,并将移除的元素返回,如果队列是空的,则会返回null
第五个方法:element(),获取队列顶部的元素(并不移除)如果队列为空,则抛出NoSuchElementException异常
第六个方法:peek()获取队列顶部的元素(并不移除)如果队列为空,则返回null
上面的方法来两两对应,分别用于应对两种不同的情况。
Collection接口
removeAll(Collection<?> c)用于移除当前集合中包含的指定集合中的所有元素,如果当前集合发生的改变则返回true
retainAll(Collection<?> c)用于保留当前集合中同样在指定集合中存在的元素,移除所有不包含在指定集合中的元素,若集合发生的变化则返回true
ListIterator接口对Iterator接口进行了补充
ListIterator接口中提供了:(向前)
boolean hasPrevious();
E previous();
int previousIndex();都有的:boolean hasNext();E next();
int nextIndex();