java collection

在 Java2中,有一套設計優良的接口和類組成了Java集合框架Collection,使程序員操做成批的數據或對象元素極爲方便。這些接口和類有不少對抽象數據類型操做的API,而這是咱們經常使用的且在數據結構中熟知的。例如Map,Set,List等。而且Java用面向對象的設計對這些數據結構和算法進行了封裝,這就極大的減化了程序員編程時的負擔。程序員也能夠以這個集合框架爲基礎,定義更高級別的數據抽象,好比棧、隊列和線程安全的集合等,從而知足本身的須要。 

Java2的集合框架,抽其核心,主要有三種:List、Set和Map。以下圖所示: java


java_Collection_介紹

須要注意的是,這裏的 Collection、List、Set和Map都是接口(Interface),不是具體的類實現。 List lst = new ArrayList(); 這是咱們日常常常使用的建立一個新的List的語句,在這裏, List是接口,ArrayList纔是具體的類。 

經常使用集合類的繼承結構以下: 
Collection<--List<--Vector 
Collection<--List<--ArrayList 
Collection<--List<--LinkedList 
Collection<--Set<--HashSet 
Collection<--Set<--HashSet<--LinkedHashSet 
Collection<--Set<--SortedSet<--TreeSet 
Map<--SortedMap<--TreeMap 
Map<--HashMap 

程序員

Set:不能包含重複的元素。算法

List:是一個有序的集合,能夠包含重複的元素。提供了按索引訪問的方式。編程

Map:包含了 key-value 對。Map 不能包含重複的 key。安全

 

List總結: 數據結構

  • 全部的List中只能容納單個不一樣類型的對象組成的表,而不是Key-Value鍵值對。例如:[ tom,1,c ]
  • 全部的List中能夠有相同的元素,例如Vector中能夠有 [ tom,koo,too,koo ]
  • 全部的List中能夠有null元素,例如[ tom,null,1 ]
  • 基於Array的List(Vector,ArrayList)適合查詢,而LinkedList 適合添加,刪除操做

Set總結: 框架

  • Set實現的基礎是Map(HashMap)
  • Set中的元素是不能重複的,若是使用add(Object obj)方法添加已經存在的對象,則會覆蓋前面的對象

Map: 
Map 是一種把鍵對象和值對象進行關聯的容器,而一個值對象又能夠是一個Map,依次類推,這樣就可造成一個多級映射。Map有兩種比較經常使用的實現:HashMap和TreeMap。 數據結構和算法

鍵和值的關聯很簡單,用put(Object key,Object value)方法便可將一個鍵與一個值對象相關聯。用get(Object key)可獲得與此key對象所對應的值對象。 線程

相關文章
相關標籤/搜索