Java編程技術(shù)分享,Java常用集合類

Java編程技術(shù)分享,Java常用集合類

長沙一度軟件培訓(xùn)      2022-03-15 21:00:01     15

Java編程技術(shù)分享,Java常用集合類,Java集合框架是Java設(shè)計者非常重要的一個設(shè)計靈感體現(xiàn)。相對數(shù)組,Java提供的集合框架是非常高效且方便的,同時也易于操作。根據(jù)

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細(xì)介紹

Java集合框架是Java設(shè)計者非常重要的一個設(shè)計靈感體現(xiàn)。相對數(shù)組,Java提供的集合框架是非常高效且方便的,同時也易于操作。根據(jù)我們平時書寫代碼的頻率以及面試時經(jīng)常被問到的知識點里,都不可或缺的提到集合框架,好多同學(xué)其實都學(xué)過集合框架,但是用的時候卻發(fā)現(xiàn)自己從沒仔細(xì)想過,我為什么要用這個集合呢?

常用集合類比較

1.List類和Set類

List類和Set類是Collection集合接口的子接口。

Set子接口:無序,不允許重復(fù)。

List子接口:有序,可以有重復(fù)元素。

2.Set和List對比

Set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變。

List:和數(shù)組類似,List可以動態(tài)增長,查找元素效率高,插入刪除元素效率低,因為會引起其他元素位置改變。

3.Set和List具體子類

Set

|————HashSet:以哈希表的形式存放元素,插入刪除速度很快。

|————linkedHashSet:采用哈希表存儲結(jié)構(gòu),同時使用鏈表維護(hù)次序。

|————TreeSet:采用二叉樹(紅黑樹)的存儲結(jié)構(gòu)。

List

|————ArrayList:動態(tài)數(shù)組

|————linkedList:鏈表、隊列、堆棧。

Map接口

Map接口是獨立的一個接口,與Collection接口沒有關(guān)系。

特點是:數(shù)據(jù)是 key-value 映射

具體子類:

|———— HashMap

Key 無序 唯一 (Set)

Value 無序 不唯一 (Collection)

|———— linkedHashMap

有序的HashMap 速度快

|———— TreeMap

有序 速度沒有hash快

注意:HashSet底層結(jié)構(gòu)其實就是調(diào)用HashMap

如何應(yīng)對面試中關(guān)于集合框架的問題呢?

1.從線程安全方面比較

線程安全就是說多線程訪問同一代碼,不會產(chǎn)生不確定的結(jié)果。集合框架之間的區(qū)別和比較的一個點,也就是包括是否線程安全,一般情況下,線程安全就必定速度或效率相對就低,這是由設(shè)計決定的。

線程安全集合類與非線程安全集合類

linkedList、ArrayList、HashSet是非線程安全的,Vector是線程安全的;

HashMap是非線程安全的,HashTable是線程安全的;

StringBuilder是非線程安全的,StringBuffer是線程安全的。

2.從適用場景比較

對于查找和刪除較為頻繁,且元素數(shù)量較多的應(yīng)用,Set或Map是更好的選擇;

ArrayList適用于通過為位置來讀取元素的場景;

linkedList 適用于要頭尾操作或插入指定位置的場景;

Vector 適用于要線程安全的ArrayList的場景;

Stack 適用于線程安全的LIFO場景;

HashSet 適用于對排序沒有要求的非重復(fù)元素的存放;

TreeSet 適用于要排序的非重復(fù)元素的存放;

HashMap 適用于大部分key-value的存取場景;

TreeMap 適用于需排序存放的key-value場景。

最后附上集合框架比較的詳細(xì)圖

集合框架不要死記硬背,一定要理解他們的數(shù)據(jù)結(jié)構(gòu)及底層實現(xiàn)原理,實際工作中,我們常用的也就那么幾個,只是面試過程中,會經(jīng)常被問到它們之間的區(qū)別和差異!

以上就是長沙一度軟件培訓(xùn)java培訓(xùn)機(jī)構(gòu)的小編針對“Java編程技術(shù)分享,Java常用集合類”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

培訓(xùn)啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹(jǐn)防上當(dāng)。