Java集合經常使用類特色整理

集合的結構以下圖所示:安全


集合的兩個頂級接口分別爲:Collection和Map函數

Collection下有兩個比較經常使用的接口分別是List(列表)和Set(集),其中List能夠存儲重複元素,元素是有序的(存取順序一致),能夠經過List腳標來獲取指定元素;而Set不能夠有重複元素,元素是無序的。線程

List接口中,比較經常使用的類有三個:ArrayList、Vactor、LinkedList。3d

ArrayList :線程不安全的,對元素的查詢速度快。cdn

Vector :線程安全的,多了一種取出元素的方式:枚舉(Enumeration),但已被ArrayList取代。對象

LinkedList :鏈表結構,對元素的增刪速度很快。blog

Set接口中,比較經常使用的類有兩個:HashSet、TreeSet:排序

HashSet:要保證元素惟一性,須要覆蓋掉Object中的equals和hashCode方法(由於底層是經過這兩個方法來判斷兩個元素是不是同一個)。接口

TreeSet:以二叉樹的結構對元素進行存儲,能夠對元素進行排序。get

排序的兩種方式:

一、元素自身具有比較功能,元素實現Comparable接口,覆蓋compareTo方法。

二、創建一個比較器對象,該對象實現Comparator接口,覆蓋compare方法,並將該對象做爲參數傳給TreeSet的構造函數(能夠用匿名內部類)。

Map接口其特色是:元素是成對出現的,以鍵和值的形式體現出來,鍵要保證惟一性:經常使用類有:HashMap,Hashtable ,TreeMap。

HashMap:線程不安全等的,容許存放null鍵null值。

Hashtable:線程安全的,不容許存放null鍵null值。

TreeMap:能夠對鍵進行排序(要實現排序方法同TreeSet)。

Collection和Map兩個接口對元素操做的區別:

存入元素:

Collection接口下的實現類經過add方法來完成,而Map下是經過put方法來完成。

取出元素:

Collection接口下:List接口有兩種方式:一、get(腳標);二、經過Iterator迭代方式獲取元素;而Vactor多了一種枚舉(Enumeration)的方式。Set接口經過迭代的方式獲取元素。

Map接口下:先通地keySet獲取鍵的系列,而後經過該系列使用Iterator迭代方式獲取元素值。

相關文章
相關標籤/搜索