java 知識點 小結

1. Java 8種基本類型:byte  char  short int  long  double  float  boolean數組

  • Byte:8位
  • Short : 16位
  • Int: 32位
  • Long: 64位
  • Float: 32位
  • Double: 64位

2. List set map安全

List:有序;可重複;數據結構

  • Arraylist: 底層數據結構是數組,查詢快,增刪慢;線程不安全;效率高;
  • Vector: 底層數據結構是數組,查詢快,線程安全;效率低;
  • LinkedList:底層數據結構是鏈表,查詢慢,增刪快;線程不安全,效率高;

Set:無序;惟一;線程

  • HashSet:底層數據結構是hash表;hash表依賴兩個方法,hashCode()和equals();

         執行順序:首先判斷hashCode()值:是否相同,對象

                         是:繼續執行equals(),看其返回值,排序

                               是true,說明元素重複,不添加;接口

                               是false,就直接添加;hash

                        否:直接添加到集合效率

                    LinkedHashSet:底層數據結構由鏈表和hash表組成;由鏈表保證元素有序;由 hash表保證元素惟一;List

  • TreeSet:底層數據結構是紅黑樹。(是一種自平衡的二叉樹)。

         如何保證元素惟一性呢?

            根據比較的返回值是不是0來決定。

        如何保證元素的排序呢? 兩種方式:

            天然排序(元素具有比較性)

                讓元素所屬的類實現Comparable接口

        比較器排序(集合具有比較性)

                讓集合接收一個Comparator的實現類對象

  • Map:key惟一,value可重複;

            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的實現類對象

相關文章
相關標籤/搜索