java容器基础
總結一下學過的java容器知識。
一、java容器框架
由于之前學習的java容器類比較混亂,先簡單的整理一下java集合框架。
首先,像這種圖,網上到處都是,因為這個也算比較準確吧,我也懶得自己畫了,因為我覺得這個目前對我來說不重要,這么多東西,并不是都用得到,其實日常寫代碼就只用到過幾種,像最常用的ArrayList、HashMap等,在這里我只總結一些最基礎的、常用的,希望對java初學者有所幫助。常用的java容器主要分為兩大類:用于單值存儲的Collection和用于雙值存儲的Map。這兩個java容器類的最基礎接口,那么我們主要用到的他們的哪些實現呢?
二、Collection接口
1,Collection接口是java集合類的基礎接口。
collection主要方法:
- boolean add(Object o)添加對象到集合
- boolean remove(Object o)刪除指定的對象
- int size()返回當前集合中元素的數量
- boolean contains(Object o)查找集合中是否有指定的對象
- boolean isEmpty()判斷集合是否為空
- Iterator iterator()返回一個迭代器
- void clear()刪除集合中所有元素
- boolean containsAll(Collection c)查找集合中是否有集合c中的元素
- boolean addAll(Collection c)將集合c中所有的元素添加給該集合
- void removeAll(Collection c)從集合中刪除c集合中也有的元素
- void retainAll(Collection c)從集合中刪除集合c中不包含的元素
前7個方法都是比較常用的,Collection接口又有常用的兩個子接口,List接口和Set接口。
2,List接口中的元素是有序可重復的。
List接口有三個實現類:ArrayList,LinkList,Vector。
ArrayList是基于數組接口的集合類,所以數據的查詢比較快,LinkList底層是雙向鏈表實現的,所以增刪比較快。Vector和特們的不同之處是Vector是線程安全的,效率也比較低,不太常用,在java的集合類中有一個很奇怪的現象,就是往往很多線程安全的東西,都不會經常用到,人們更喜歡把線程不安全的東西用一些特殊的方法使他變得線程安全,具體什么原因,在網上也查不到,還是要加緊學習啊!
3,Set接口中的元素是不可重復的。
Set接口有兩個常用的實現類:HashSet,TreeSet。
HashSet是用的最多的,TreeSet用的則比較少,前者存儲的元素是無序的(基于哈希表實現),后者存儲的元素是有序的(基于二叉樹)。兩者都是線程不安全的。
三、Map接口
1,Map接口是java雙值存儲的最基礎接口
Map主要方法:
2,HashMap
3,HashTable
4,TreeMap
四、補充
1,重復問題
2,排序問題
3,java數據接口
https://study.163.com/course/courseMain.htm?courseId=1006190095
五、總結
| 實現類/特性 | 線程安全 | 存取速度 | 數據結構 | 使用頻率 | 迭代方法 |
| ArrayList | |||||
| LinkList | |||||
| Vector | |||||
| HashSet | |||||
| TreeSet | |||||
| HashMap | |||||
| HashTable |
總結
- 上一篇: 【动画进阶】神奇的 3D 磨砂玻璃透视效
- 下一篇: 创建servlet程序知识点详解---s