可關注小編私信“教程”,獲得下載地址
集合(容器)
目錄
•集合的引入
•List (ArrayList LinkedList)
•Set (HashSet LinkedHashSet TreeSet)
本次分享技能點列表
1、集合的引入
集合的使用場合--Where
•舉例
•新聞列表
•就業喜報
•就業明星
•郵件列表
•購物車
•當我們需要將一些相同結構的個體整合在一起時,就可以考慮使用集合了 。
為什麼使用集合而不是數組--Why
•集合和數組相似點
都可以存儲多個對象,對外作為一個整體存在
•數組的缺點
長度必須在初始化時指定,且固定不變
數組採用連續存儲空間,刪除和添加效率低下
數組無法直接保存映射關係
數組缺乏封裝,操作繁瑣
集合架構
•Java集合框架提供了一套性能優良、使用方便的接口和類,它們位於java.util包中
•存放在集合中的數據,被稱為元素(element)
•Collection 接口存儲一組不唯一,無序的對象
•List 接口存儲一組不唯一,有序(索引順序)的對象
•Set 接口存儲一組唯一,無序的對象
•Map接口存儲一組鍵值對象,提供key到value的映射
Key 唯一 無序
value 不唯一 無序
2、List
•特點:有序 不唯一(可重複)
•ArrayList
在內存中分配連續的空間,實現了長度可變的數組
優點:遍歷元素和隨機訪問元素的效率比較高
缺點:添加和刪除需大量移動元素效率低,按照內容查詢效率低,
•LinkedList
採用鏈表存儲方式。
缺點:遍歷和隨機訪問元素效率低下
優點:插入、刪除元素效率比較高(但是前提也是必須先低效率查詢才可。如果插入刪除發生在頭尾可以減少查詢次數)
List常用方法
List相對Collection增加了關於位置操作的方法
List的遍歷方法
for
for-each
Iterator迭代器
理解面向接口編程
List list = new ArrayList();
ArrayList list = new ArrayList();
集合中內容是否相同
通過equals進行內容比較,而是==引用比較
3、Set
•特點:無序 唯一(不重複)
HashSet
採用Hashtable哈希表存儲結構(神奇的結構)
優點:添加速度快 查詢速度快 刪除速度快
缺點:無序
•LinkedHashSet
採用哈希表存儲結構,同時使用鏈表維護次序
有序(添加順序)
•TreeSet
採用二叉樹(紅黑樹)的存儲結構
優點:有序 查詢速度比List快(按照內容查詢)
缺點:查詢速度沒有HashSet快
Set常用方法
Set相對Collection沒有增加任何方法
Set的遍歷方法
for-each
Iterator迭代器
無法使用for進行遍歷(因為無序,所以沒有get(i))
HashSet、HashMap或Hashtable中對象唯一性判斷
重寫其hashCode()和equals()方法
TreeSet中指明排序依據
實現Comparable接口
創建實現Compator接口的類。
哈希表存儲原理
神奇的表結構,添加和查詢數據速度非常快
演示添加過程
一次添加成功
數據已經存在
多次添加成功
•演示查詢過程
1次查詢獲取
多次查詢獲取
不存在的數據
•hashCode如何計算
整數、實數
字符串 對象
不知道有多少java程序員能看到這裡。
如果你依然覺得有些茫然,不如跟有多年Java開發經驗的資深工程師聊一聊。
每天2小時學習時間,密集輸入Java開發相關知識及經驗,幫你快速實現技術和職業成長上的突破。
只需要關注+轉發+評論,然後私信我“教程”就可以獲取了,方法很簡單,就看自己怎麼去把握了,看好你們哦!
閱讀更多 java高級開發 的文章