java程序員必備的java理論,集合(容器)集合引入、list、set

可關注小編私信“教程”,獲得下載地址

集合(容器)

目錄

•集合的引入

•List (ArrayList LinkedList)

•Set (HashSet LinkedHashSet TreeSet)

本次分享技能點列表

java程序員必備的java理論,集合(容器)集合引入、list、set

java程序員必備的java理論,集合(容器)集合引入、list、set

1、集合的引入

集合的使用場合--Where

•舉例

•新聞列表

•就業喜報

•就業明星

•郵件列表

•購物車

•當我們需要將一些相同結構的個體整合在一起時,就可以考慮使用集合了 。

為什麼使用集合而不是數組--Why

•集合和數組相似點

都可以存儲多個對象,對外作為一個整體存在

•數組的缺點

長度必須在初始化時指定,且固定不變

數組採用連續存儲空間,刪除和添加效率低下

數組無法直接保存映射關係

數組缺乏封裝,操作繁瑣

java程序員必備的java理論,集合(容器)集合引入、list、set

集合架構

•Java集合框架提供了一套性能優良、使用方便的接口和類,它們位於java.util包中

•存放在集合中的數據,被稱為元素(element)

java程序員必備的java理論,集合(容器)集合引入、list、set

•Collection 接口存儲一組不唯一,無序的對象

•List 接口存儲一組不唯一,有序(索引順序)的對象

•Set 接口存儲一組唯一,無序的對象


•Map接口存儲一組鍵值對象,提供key到value的映射

Key 唯一 無序

value 不唯一 無序

java程序員必備的java理論,集合(容器)集合引入、list、set

2、List

•特點:有序 不唯一(可重複)

•ArrayList

在內存中分配連續的空間,實現了長度可變的數組

優點:遍歷元素和隨機訪問元素的效率比較高

缺點:添加和刪除需大量移動元素效率低,按照內容查詢效率低,

•LinkedList

採用鏈表存儲方式。

缺點:遍歷和隨機訪問元素效率低下

優點:插入、刪除元素效率比較高(但是前提也是必須先低效率查詢才可。如果插入刪除發生在頭尾可以減少查詢次數)

java程序員必備的java理論,集合(容器)集合引入、list、set

java程序員必備的java理論,集合(容器)集合引入、list、set

java程序員必備的java理論,集合(容器)集合引入、list、set

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快

java程序員必備的java理論,集合(容器)集合引入、list、set

java程序員必備的java理論,集合(容器)集合引入、list、set


Set常用方法

Set相對Collection沒有增加任何方法

Set的遍歷方法

for-each

Iterator迭代器

無法使用for進行遍歷(因為無序,所以沒有get(i))

HashSet、HashMap或Hashtable中對象唯一性判斷

重寫其hashCode()和equals()方法

TreeSet中指明排序依據

實現Comparable接口

創建實現Compator接口的類。

哈希表存儲原理

神奇的表結構,添加和查詢數據速度非常快

演示添加過程

一次添加成功

數據已經存在

多次添加成功

•演示查詢過程

1次查詢獲取

多次查詢獲取

不存在的數據

•hashCode如何計算

整數、實數

字符串 對象

java程序員必備的java理論,集合(容器)集合引入、list、set

不知道有多少java程序員能看到這裡。

如果你依然覺得有些茫然,不如跟有多年Java開發經驗的資深工程師聊一聊。

每天2小時學習時間,密集輸入Java開發相關知識及經驗,幫你快速實現技術和職業成長上的突破。

只需要關注+轉發+評論,然後私信我“教程”就可以獲取了,方法很簡單,就看自己怎麼去把握了,看好你們哦!


分享到:


相關文章: