队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。不过优先级队列和 LIFO 队列(或堆栈)例外,前者根据提供的比较器或元素的自然顺序对元素进行排序,后者按 LIFO(后进先出)的方式对元素进行排序。无论使用哪种排序方式,队列的头 都是调用 remove() 或 poll() 所移除的元素。在 FIFO 队列中,所有的新元素都插入队列的末尾。其他种类的队列可能使用不同的元素放置规则。每个 Queue 实现必须指定其顺序属性。在处理元素前用于保存元素的 collection。除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接
add(E e)将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true,如果当前没有可用的空间,则抛出IllegalStateException。
element() 获取,但是不移除此队列的头。
offer(E e) 将指定的元素插入此队列(如果立即可行且不会违反容量限制)。当使用有容量限制的队列时,此方法通常要优于 add(E),后者可能无法插入元素,而只是抛出一个异常
peek() 获取但不移除此队列的头;如果此队列为空,则返回 null。
poll() 获取并移除此队列的头,如果此队列为空,则返回 null。
remove() 获取并移除此队列
实例代码
import java.util.LinkedList;
import java.util.Queue;
public class DemoQueue{
public static void main(String[] args){
Queue<String> queue = new LinkedList<>();
// add()和remove()方法在失败的时候会抛出异常(不推荐)
//添加元素
queue.offer("同学1");
queue.offer("同学2");
queue.offer("同学3");
queue.offer("同学4");
queue.offer("同学5");
//遍历队列
for (String string : queue) {
System.out.print(string + "\t");
}
System.out.println();
System.out.println("================");
//返回第一个元素,并在队列中删除
System.out.println("poll= " + queue.poll());
System.out.println(queue);
System.out.println("================");
//返回第一个元素
System.out.println("element=" + queue.element());
System.out.println(queue);
System.out.println("================”);
//返回第一个元素
System.out.println("peek= " + queue.peek());
System.out.println(queue);
}
}
转载http://tool.oschina.net/apidocs/apidoc?api=jdk-zh