hashset集合是無序、不可重複的,它的底層是使用了hashmap實現的,hashmap的底層是陣列和鍊錶實現的;無序指的是增加元素的順序和取出元素的順序不一定一致,不可重複是因為它使用了通過首先獲取hashcode值,再通過hash演算法將hashcode值算出索引,最後比較equals方法來決定兩個值是否重複(其中,如果兩個資料通過hashcode值算出的索引一致,那麼會在同索引處比較equals方法,如果不一致,則會通過鍊錶結構將資料掛在此索引的位置,如果算出的索引一致,那麼就不會使用equals方法)(其實你的hashcode值相等,通過hash演算法算出的索引也就像等,所以不必強調這個)
set的繼承特點:
set 無序的,不可重複的,不能使用普通for迴圈和雙向迭代器
|__hashset treeset
list 有序的,並且資料可重複的可以使用偏頭痛for迴圈、增強for迴圈、正向迭代器、雙向迭代器
|___arraylist linkedlist
treeset集合特點:無序(新增元素的順序和取出元素的順序不一定是相同的)、不可重複的(判斷重複的方法:
①compareto方法返回0,表示相等;②compare方法返回0,則表示相等),是基於二叉樹實現的。
包裝類都實現了comparable介面,因此都覆寫了compareto方法(具有了排序功能),乙個普通類的物件本身是沒有排序的功能的,但是由於實現了comparable介面,因此物件就具有了排序的功能。
compareto方法如果返回正數、或者負數都會按照不一致的自然方法進行排序,但是如果返回0,則表示物件都相等,意味著treeset集合只儲存了第乙個元素
注意:treeset集合內部沒有實現listiterator介面,因此不能使用雙向迭代器,又因為treeset集合是無序的,因此不能夠使用普通for迴圈(不能按照指定的索引取到值)
注意:treeset容器儲存的值必須要擁有自然排序或者定製排序(比較器)的能力
如果乙個類實現了comparator介面,那麼這個類就是乙個比較類,在treeset集合中有乙個構造方法是
treeset(sortedsets) 構造乙個按照比較類規則來進行比較集合中元素的方法,然後將這個比較類的物件傳入集合的物件中,就可以使用定製排序(比較器)了(最好使用匿名內部類)。
Set集合介面
set介面 set集合就像是乙個罐子,一旦把物件 丟進去 多個物件之間就沒有順序,set元素不可以重複 set判斷兩個物件是否相同不是使用 而是使用equals set t new hashset t.add aa t.add new string aa system.out.println t.a...
Collection集合類(Set介面)
set介面 extend collection介面 特點 1 不允許重複的元素 2 設有索引,沒有帶索引的方法,也不能進行普通for 3 是乙個元素的集合,訪問可能不一致 4 底層是雜湊表 查詢快 方法上和collection一致 實現類 hashset 由雜湊表構成 例 setset new ha...
集合4 集合 Collection介面 Set介面
儲存無序的 不可重複的資料 三種實現類 注 1.set介面中沒有額外定義新的方法,使用的都是collection中宣告過的方法 2.向set中新增的資料,其所在類一定要重寫hashcode 和equals 且重寫的hashcode 和equals 盡可能保持一致 相等的物件具有相等的雜湊碼 以has...