Collection框架介绍
Collection:List列表,Set集,?Map:Hashtable,HashMap,TreeMap
?
Collection??是單列集合
List???元素是有序的、可重復
有序的?collection,可以對列表中每個元素的插入位置進行精確地控制。
可以根據元素的整數索引(在列表中的位置)訪問元素,并搜索列表中的元素。?
可存放重復元素,元素存取是有序的。
List接口中常用類
l?Vector: 線程安全,但速度慢,已被ArrayList替代。
底層數據結構是數組結構
l?ArrayList:線程不安全,查詢速度快。
????????????底層數據結構是數組結構
l?LinkedList:線程不安全。增刪速度快。
?????????????底層數據結構是列表結構
?
Set(集)?元素無序的、不可重復。
取出元素的方法只有迭代器。不可以存放重復元素,元素存取是無序的。
Set接口中常用的類
l?HashSet:線程不安全,存取速度快。
???????? ?它是如何保證元素唯一性的呢?依賴的是元素的hashCode方法和euqals方法。
l?TreeSet:線程不安全,可以對Set集合中的元素進行排序。
? ? ? ? ??它的排序是如何進行的呢?通過compareTo或者compare方法中的來保證元素的唯一性。元素是以二叉樹的形式存放的。
?
?
Map??是一個雙列集合
|--Hashtable:線程安全,速度快。底層是哈希表數據結構。是同步的。
不允許null作為鍵,null作為值。
??????|--Properties:用于配置文件的定義和操作,使用頻率非常高,同時鍵和值都是字符串。
是集合中可以和IO技術相結合的對象。(到了IO在學習它的特有和io相關的功能。)
|--HashMap:線程不安全,速度更快。底層也是哈希表數據結構。是不同步的。
允許null作為鍵,null作為值。替代了Hashtable.
??? ??|--LinkedHashMap:?可以保證HashMap集合有序。存入的順序和取出的順序一致。
|--TreeMap:可以用來對Map集合中的鍵進行排序.
?(關于HashMap和Hashtable的區別可參考:http://www.importnew.com/24822.html)
簡單總結如下:
1.Hashtable是Dictionary的子類,HashMap是Map接口的一個實現類;
2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的。即是說,在多線程應用程序中,不用專門的操作就安全地可以使用Hashtable了;而對于HashMap,則需要額外的同步機制。但HashMap的同步問題可通過Collections的一個靜態方法得到解決:
Map Collections.synchronizedMap(Map m)
這個方法返回一個同步的Map,這個Map封裝了底層的HashMap的所有方法,使得底層的HashMap即使是在多線程的環境中也是安全的。
3.在HashMap中,null可以作為鍵,也可以作為value,(key不可重復,value可重復)這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null。當get()方法返回null值時,即可以表示HashMap中沒有該鍵,也可以表示該鍵所對應的值為null。因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵,而應該用containsKey()方法來判斷。
?
參考博文:https://blog.csdn.net/weixin_37766296/article/details/80436402
?
Collection是集合類的上級接口,子接口主要有Set?和List、Map。?
Collections是針對集合類的一個幫助類,提供了操作集合的工具方法:一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。
總結
以上是生活随笔為你收集整理的Collection框架介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年高考理综单科成绩查询,2021
- 下一篇: 使用动态代理解决网站字符集编码问题:(之