java容器概念:
javaAPI所提供的一些接口,實現這些接口的類的實例,用於程序中存放對象。
好處:當需要空間的時候會自動增長,不需要的時候就會自動的釋放。
java容器API的結構圖:
Collection接口定義了存取一組對象的方法,其子接口Set和List分別定義了存儲方法。
Set接口類似集合,沒有順序,不可以重復。
List接口有順序,可以重復(重復是指兩個對象equals)。
Map接口定義了存儲“鍵(key)–值(vlaue)映射對”的方法。
Collection中的方法:
在調用remove、contains等方法需要比較對象是否相等,這會涉及到equals方法和hashCode方法:對於自定義的類型需要重寫equals和hashCode方法以實現自定義的對象相等規則。相等的對象應該具有相等的hash codes。
Iterator接口:
我們可以看到,所有實現了Collection接口的容器類都有一個iterator方法,返回了一個Iterator接口的對象。
Iterator對象稱為迭代器,用以方便的實現對容器內元素的遍歷操作。
Iterator接口定義了如下方法:
BooleanhasNext() 判斷游標右邊是否還有元素。
Object next();返回游標右邊的元素並將游標移動到下一個位置。
Void remove();刪除游標左邊的元素,在執行完next之後該操只能執行一次。
Set接口:
Set接口是Collection子接口,Set接口沒有提供額外的方法,但實現Set接口的容器類中的元素是沒有順序的,而且不可重復。
set與數學中的集合相對應。
HashSet和TreeSet等。
List接口:
List接口是Collection的子接口,實現List接口的容器中的元素是有序的,而且是可以重復的。
List容器中的元素都對應一個整數型的序號記載其在容器中的位置,可以根據序號來存取容器中的元素。
List常用方法:
List容器類:ArrayList和LinkedList類。
讀的效率和改的效率:
Array讀快改慢。
Linked改快讀慢。
Hash兩者之間。
Compare接口:
確定容器中對象的“大小”和順序?
所有可以排序的類都實現了java.lang.Comparable接口,這個接口中只有一個方法:publicint compareTo(Objectobj) 返回值0,正數,負數。
Map接口:
實現Map接口的類用來存儲鍵--值對。
Map接口實現類有HashMap和TreeMap等。
Map類中存儲的鍵值對通過鍵來標識,所以鍵值不能重復。