List還有一個LinkedList的實現,它是一個基於鏈表實現的List類,對於順序訪問集合中的元素進行了優化,特別是當插入、刪除元素時速度非常快。因爲LinkedList即實現了List接口,也實現了Deque接口(雙向隊列),Deque接口是Queue接口的子接口,它代表一個雙向列表,Deque接口裏定義了一些可以雙向操作隊列的方法: 從上面方法中可以看出,LinkedList不僅可以當成雙向隊列使用,也可以當成“棧”使用。同時,LinkedList實現了List接口,所以還被當成List使用。 程序示例: 程序運行結果: ROR敏捷開發最佳實踐 說明:程序中示範了LinkedList作爲雙向隊列、棧和List集合的用法。LinkedList與ArrayList、Vector的實現機制完全不同,ArrayList、Vector內部以數組的形式來保存集合中的元素,因此隨機訪問集合元素上有較好的性能;而LinkedList內部以鏈表的形式來保存集合中的元素,因此隨機訪問集合時性能較差,但在插入、刪除元素時性能非常出色(只需改變指針所指的地址即可)。Vector因實現了線程同步功能,所以各方面性能有所下降。 關於使用List集合的幾點建議:3、LinkedList實現類
public class TestLinkedList { public static void main(String[] args) { LinkedList books = new LinkedList(); //將字符串元素加入隊列的尾部 books.offer("Struts2權威指南"); //將一個字符串元素入棧 books.push("輕量級J2EE企業應用實戰"); //將字符串元素添加到隊列的頭部 books.offerFirst("ROR敏捷開發最佳實踐"); for (int i = 0; i < books.size() ; i++ ) { System.out.println(books.get(i)); } //訪問、並不刪除隊列的第一個元素 System.out.println(books.peekFirst()); //訪問、並不刪除隊列的最後一個元素 System.out.println(books.peekLast()); //採用出棧的方式將第一個元素pop出隊列 System.out.println(books.pop()); //下面輸出將看到隊列中第一個元素被刪除 System.out.println(books); //訪問、並刪除隊列的最後一個元素 System.out.println(books.pollLast()); //下面輸出將看到隊列中只剩下中間一個元素:輕量級J2EE企業應用實戰 System.out.println(books); } }
輕量級J2EE企業應用實戰
Struts2權威指南
ROR敏捷開發最佳實踐
Struts2權威指南
ROR敏捷開發最佳實踐
[輕量級J2EE企業應用實戰, Struts2權威指南]
Struts2權威指南
[輕量級J2EE企業應用實戰]
Java集合框架總結——List接口的使用2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.