一:Hash結構集合 Hash結構的特點是無序和唯一,無序即添加元素的順序和輸出元素的順序不一致,唯一是指元素不重覆。那是什麼來保證Hash結構元素唯一的呢? 元素所在類的HashCode()和equals()方法來保證元素的唯一性的,所以自定義的類用Hash結構集合存儲元素時,需要重寫這兩個方法。 ...
一:Hash結構集合
Hash結構的特點是無序和唯一,無序即添加元素的順序和輸出元素的順序不一致,唯一是指元素不重覆。那是什麼來保證Hash結構元素唯一的呢?
元素所在類的HashCode()和equals()方法來保證元素的唯一性的,所以自定義的類用Hash結構集合存儲元素時,需要重寫這兩個方法。Java本身自帶的類是有重寫這兩個方法的,比如String、Integer和Character等等。
二:Tree結構集合
Tree結構的特點是無序和唯一還有可排序,無序和唯一上文已經介紹了,可排序是指元素以此結構為底層結構的集合可以對存入進去的元素按照一定規則進行排序,這個規則可以是自己定義也可以是元素所屬的類自帶的。
同理,是什麼保證Tree結構的的唯一和可排序的呢?
上文說的規則有兩種,類自帶的和自己定義的,而用類自帶的規則的排序方式叫做自然排序,自己定義規則排序的叫做比較器排序。
自然排序:
是元素所在類實現了Comparable介面的CompareTo(Object o)方法,Tree結構自然排序時,底層依賴的便是這個方法,所以你如何實現這個方法,集合就怎麼排序。那麼如果是自定義的類則也需要實現接
口Comparable的CompareTo方法,而Java自身的類如String、Integer和Character等都實現了這個方法,所以不需要自己實現。
比較器排序:
和自然排序類似,是創建一個Comparator(此處介面和自然排序需要實現的介面不同)介面的實體類,此實體類里實現了compare()(此處方法與自然排序需要實現的方法方法不同)方法,因為選擇器排序
時依賴的是compare()方法。同理,需要怎麼樣的排序規則自己在compare()方法中編寫。創建Tree結構集合時,Tree結構集合採用有參構造(自然排序是無參構造),而參數是實現了Comparator介面的
實體類對象。當自然排序和比較器排序都存在時,是以比較器排序來排序的。
三:總結
這是我在學習時總結的,我知道對於大部分人來說很簡單,但是我還想想分享一下,希望能夠幫助到一些和我一樣剛開始學的人!這是我第一次發博文,好有新鮮感和滿足感!謝謝博客家園提供這個平臺,希望大家能多在這裡分享
和討論喲!