常用集合之間的關系


常用集合之間的關系:

1:list的子類          :list集合包含重復元素,並且有序(存儲順序和取出順序一致);

      ArrayList:      底層是數組,線程不安全,查詢快,增刪慢,效率高;

      vector:          底層是數組,線程安全,查詢快,增刪慢,效率低;

     linkedList:      底層是鏈表,線程不安全,查詢慢,增刪快,效率高;

 

2:set類集合:   set集合不包含重復,具有唯一性;

       HashSet:                  唯一性;

      LinkedHashSet :      底層是hash表(唯一性)和鏈表(存放和取出有序)組成,所以具有唯一性和有序性;

       TreeSet :                   唯一性,集合內部有兩種排序方式:自然排序 和 比較器排序;

 

 3: Map類集合:          鍵值對集合,鍵具有唯一性;

       HashMap:     存儲無序,鍵具有唯一性;

       TreeMap:       存儲為自然排序,鍵具有唯一性;

       LinkedHashMap:    存放和取出有序,鍵具有唯一性;

       

 

 

 

 

 

面試相關:

      1:HashMap與Hashtable的區別:

          HashMap:   線程不安全,允許null鍵和null值;

          Hashtable:   線程安全,不允許null鍵和null值;

      2:list、set、Map是否都是繼承map ??

          否,list、set繼承的collection接口,而map接口本身就是一個頂層接口;

 

        3:collection與collections的區別:

             collection :   是單列集合的頂層接口,有子接口list、set;

             collections:   是針對集合操作的工具類,像常用的:對集合進行排序和二分查找;

    collections的常用方法:      

             collections里面都是靜態方法:

                               collections.sort(List<>  list)   :集合的自然排序;

                               collections.binarySearch(List<>  list  ,T   key)   : 集合的二分查找;

                               collections.max()          :  獲取最大值;

                               collections .reverse()       :  元素反轉;

                                      collections .shuffle()      :    元素位置隨機置換;

 4:開發中如何使用線程安全的集合?

List<Object> objects = Collections.synchronizedList(new ArrayList<>());

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM