1. Java 8種基本類型:byte char short int long double float boolean數組
2. List set map安全
List:有序;可重複;數據結構
Set:無序;惟一;線程
執行順序:首先判斷hashCode()值:是否相同,對象
是:繼續執行equals(),看其返回值,排序
是true,說明元素重複,不添加;接口
是false,就直接添加;hash
否:直接添加到集合效率
LinkedHashSet:底層數據結構由鏈表和hash表組成;由鏈表保證元素有序;由 hash表保證元素惟一;List
如何保證元素惟一性呢?
根據比較的返回值是不是0來決定。
如何保證元素的排序呢? 兩種方式:
天然排序(元素具有比較性)
讓元素所屬的類實現Comparable接口
比較器排序(集合具有比較性)
讓集合接收一個Comparator的實現類對象
HashMap:底層數據結構是hash表。線程不安全,效率高;
hash表依賴兩個方法,hashCode()和equals();
執行順序:首先判斷hashCode()值:是否相同,
是:繼續執行equals(),看其返回值,
是true,說明元素重複,不添加;
是false,就直接添加;
否:直接添加到集合
LinkedHashMap:
底層數據結構由鏈表和hash表組成;
由鏈表保證元素有序;
由hash表保證元素惟一;
HashTable:底層數據結構是hash表。線程安全,效率低;
hash表依賴兩個方法,hashCode()和equals();
執行順序:首先判斷hashCode()值:是否相同,
是:繼續執行equals(),看其返回值,
是true,說明元素重複,不添加;
是false,就直接添加;
否:直接添加到集合
TreeMap:底層數據結構是紅黑樹。(是一種自平衡的二叉樹)。
如何保證元素惟一性呢?
根據比較的返回值是不是0來決定。
如何保證元素的排序呢?兩種方式:
天然排序(元素具有比較性)
讓元素所屬的類實現Comparable接口
比較器排序(集合具有比較性)
讓集合接收一個Comparator的實現類對象