Java queue队列

队列通常(但并非一定)以 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

猜你喜欢

转载自blog.csdn.net/weixin_44578470/article/details/90037404
今日推荐