轉載自:http://blog.csdn.net/guijava/article/details/3784658 前端
在java5中新增長了java.util.Queue接口,用以支持隊列的常見操做。Queue接口與List、Set同一級別,都是繼承了Collection接口。
Queue使用時要儘可能避免Collection的add()和remove()方法,而是要使用offer()來加入元素,使用poll()來獲取並移出元素。它們的優
點是經過返回值能夠判斷成功與否,add()和remove()方法在失敗的時候會拋出異常。 若是要使用前端而不移出該元素,使用
element()或者peek()方法。
值得注意的是LinkedList類實現了Queue接口,所以咱們能夠把LinkedList當成Queue來用。java
LinkedList實現了Queue接口。Queue接口窄化了對LinkedList的方法的訪問權限(即在方法中的參數類型若是是Queue時,就徹底只能訪問Queue接口所定義的方法 了,而不能直接訪問 LinkedList的非Queue的方法),以使得只有恰當的方法才能夠使用。BlockingQueue 繼承了Queue接口ui
1 小例子: 2 3 /** 4 * 5 * @author Zang XT 6 */ 7 import java.util.Queue; 8 import java.util.LinkedList; 9 public class TestQueue { 10 public static void main(String[] args) { 11 Queue<String> queue = new LinkedList<String>(); 12 queue.offer("Hello"); 13 queue.offer("World!"); 14 queue.offer("你好!"); 15 System.out.println(queue.size()); 16 String str; 17 while((str=queue.poll())!=null){ 18 System.out.print(str); 19 } 20 System.out.println(); 21 System.out.println(queue.size()); 22 } 23 }