集合总结
Collection(單列集合)
??List(有序,可重復)
???ArrayList
????底層數據結構是數組,查詢快,增刪慢
????線程不安全,效率高
???Vector
????底層數據結構是數組,查詢快,增刪慢
????線程安全,效率低
???LinkedList
????底層數據結構是鏈表,查詢慢,增刪快
????線程不安全,效率高
??Set(無序,唯一)
???HashSet
????底層數據結構是哈希表。
????哈希表依賴兩個方法:hashCode()和equals()
????執行順序:
?????首先判斷hashCode()值是否相同
??????是:繼續執行equals(),看其返回值
???????是true:說明元素重復,不添加
???????是false:就直接添加到集合
??????否:就直接添加到集合
????最終:
?????自動生成hashCode()和equals()即可
?????
????LinkedHashSet
?????底層數據結構由鏈表和哈希表組成。
?????由鏈表保證元素有序。
?????由哈希表保證元素唯一。
???TreeSet
????底層數據結構是紅黑樹。(是一種自平衡的二叉樹)
????如何保證元素唯一性呢?
?????根據比較的返回值是否是0來決定
????如何保證元素的排序呢?
?????兩種方式
??????自然排序(元素具備比較性)
???????讓元素所屬的類實現Comparable接口
??????比較器排序(集合具備比較性)
???????讓集合接收一個Comparator的實現類對象
?Map(雙列集合)
??A:Map集合的數據結構僅僅針對鍵有效,與值無關。
??B:存儲的是鍵值對形式的元素,鍵唯一,值可重復。
??
??HashMap
???底層數據結構是哈希表。線程不安全,效率高
????哈希表依賴兩個方法:hashCode()和equals()
????執行順序:
?????首先判斷hashCode()值是否相同
??????是:繼續執行equals(),看其返回值
???????是true:說明元素重復,不添加
???????是false:就直接添加到集合
??????否:就直接添加到集合
????最終:
?????自動生成hashCode()和equals()即可
???LinkedHashMap
????底層數據結構由鏈表和哈希表組成。
?????由鏈表保證元素有序。
?????由哈希表保證元素唯一。
??Hashtable
???底層數據結構是哈希表。線程安全,效率低
????哈希表依賴兩個方法:hashCode()和equals()
????執行順序:
?????首先判斷hashCode()值是否相同
??????是:繼續執行equals(),看其返回值
???????是true:說明元素重復,不添加
???????是false:就直接添加到集合
??????否:就直接添加到集合
????最終:
?????自動生成hashCode()和equals()即可
??TreeMap
???底層數據結構是紅黑樹。(是一種自平衡的二叉樹)
????如何保證元素唯一性呢?
?????根據比較的返回值是否是0來決定
????如何保證元素的排序呢?
?????兩種方式
??????自然排序(元素具備比較性)
???????讓元素所屬的類實現Comparable接口
??????比較器排序(集合具備比較性)
???????讓集合接收一個Comparator的實現類對象
?
轉載于:https://www.cnblogs.com/rong123/p/10216559.html
總結
- 上一篇: 乘风破浪:LeetCode真题_007_
- 下一篇: DVWA 黑客攻防实战(十五) 绕过内容