Java的Collection框架細節點
阿新 • • 發佈:2018-07-18
建立 必須 函數 細節 框架 情況下 排序 ash trees 集合類的由來:
對象用於封裝特有數據,對象多了需要存儲,如果對象的個數不確定。
就使用集合容器進行存儲。
對象用於封裝特有數據,對象多了需要存儲,如果對象的個數不確定。
就使用集合容器進行存儲。
集合特點:
1,用於存儲對象的容器。
2,集合的長度是可變的。
3,集合中不可以存儲基本數據類型值。
4,集合都有叠代器Iterator
Collection
|--List:有序(存入和取出的順序一致),元素都有索引(角標),元素可以重復。
|--Set:元素不能重復,無序。
List: |--Vector:內部是數組數據結構,是同步的。增刪,查詢都很慢! |--ArrayList:內部是數組數據結構,是不同步的。替代了Vector。查詢的速度快。 |--LinkedList:內部是鏈表數據結構,是不同步的。增刪元素的速度很快。 Set:元素不可以重復,是無序。 |--HashSet: 內部數據結構是哈希表 ,是不同步的。 如何保證該集合的元素唯一性呢? 是通過對象的hashCode和equals方法來完成對象唯一性的。 如果對象的hashCode值不同,那麽不用判斷equals方法,就直接存儲到哈希表中。 如果對象的hashCode值相同,那麽要再次判斷對象的equals方法是否為true。 如果為true,視為相同元素,不存。如果為false,那麽視為不同元素,就進行存儲。 記住:如果元素要存儲到HashSet集合中,必須覆蓋hashCode方法和equals方法。 一般情況下,如果定義的類會產生很多對象,比如人,學生,書,通常都需要覆蓋equals,hashCode方法。 建立對象判斷是否相同的依據。 |--TreeSet:可以對Set集合中的元素進行排序。是不同步的。 判斷元素唯一性的方式:就是根據比較方法的返回結果是否是0,是0,就是相同元素,不存。 TreeSet對元素進行排序的方式一: 讓元素自身具備比較功能,元就需要實現Comparable接口。覆蓋compareTo方法。 如果不要按照對象中具備的自然順序進行排序。如果對象中不具備自然順序。怎麽辦? 可以使用TreeSet集合第二種排序方式二: 讓集合自身具備比較功能,定義一個類實現Comparator接口,覆蓋compare方法。 將該類對象作為參數傳遞給TreeSet集合的構造函數。
Java的Collection框架細節點