Java常用的集合類(轉)
繼上一篇文章http://www.cnblogs.com/EasonJim/p/6937690.html中介紹的集合類有非常多,但是在實際使用中,最常用的應該是下面這幾種:
Java的集合框架分為List和Set接口
Set和List:
Set子接口:無序,不允許重復。List子接口:有序,可以有重復元素。具體區別是
Set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變。<對應類有HashSet,TreeSet>
List:和數組類似,List可以動態增長,查找元素效率高,插入刪除元素效率低,因為會引起其他元素位置改變。<相應類有ArrayList,LinkedList,Vector>
Set和List具體子類:
ArrayList:數據的讀取比較快(底層是用數組實現的,更擅長遍歷搜索查找,因為數組有下標的概念, 可以很方便的跳到指定的位置; 不擅長插入刪除操作;)
LinkedList:數據存儲和刪除比較快(底層是用鏈表實現的, 鏈表是一個個節點鏈起來的, 擅長插入刪除等操作(某節點斷開去掉或者重新 連接上新的節點,這類操作比較快捷,搜索查詢的話只能是一個節點一個節點的來)
HashSet:允許為Null的值,亂序(HashSet底層是采用HashMap實現的)
TreeSet:不允許放入Null值,有序(TreeSet 底層是通過TreeMap來實現的)
Map接口
HashMap:允許為Null的值,亂序
TreeMap:如果你需要得到一個有序的結果你就應該使用TreeMap(HashMap中元素的排列順序是不固定的)。
參考:
http://blog.csdn.net/u010567151/article/details/48265349(以上內容轉自此篇文章)
Java常用的集合類(轉)