溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中如何使用集合框架

發(fā)布時(shí)間:2021-07-02 14:27:59 來(lái)源:億速云 閱讀:119 作者:Leah 欄目:編程語(yǔ)言

今天就跟大家聊聊有關(guān)Java中如何使用集合框架,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

Java中如何使用集合框架


從集合框架圖中可以看出,分為兩類

以Collection為接口的元素集合類型,以Map為接口的映射集合類型
Collection類型又分為兩大類Set和List

所有集合的實(shí)現(xiàn)類都不是直接實(shí)現(xiàn)集合類接口,而是都繼承一個(gè)相應(yīng)的抽象類
Set集合的特征:就是元素?zé)o重復(fù),但是無(wú)序(所以Set接口以及實(shí)現(xiàn)類沒(méi)有按位置index操作的添加、刪除、訪問(wèn)方法)

List集合的特征:集合有序排列,可以有重復(fù)元素,可以隨機(jī)訪問(wèn)(使用位置index添加、刪除、訪問(wèn)元素)

List的實(shí)現(xiàn)類有ArrayList,LinkedList,這兩個(gè)都是非線程安全的,Vector是線程安全的List實(shí)現(xiàn)類,Stack是vector的子類

ArrayList的內(nèi)部實(shí)現(xiàn)是基于內(nèi)部數(shù)組Object[],所以從概念上講,它更像數(shù)組,但LinkedList的內(nèi)部實(shí)現(xiàn)是基于一組連接的記錄,所以,它更像一個(gè)鏈表結(jié)構(gòu)

在ArrayList的前面或中間插入數(shù)據(jù)時(shí),必須將其后的所有數(shù)據(jù)相應(yīng)的后移,這樣必然要花費(fèi)較多時(shí)間,所以,當(dāng)你的操作是在一列數(shù)據(jù)的后面添加數(shù)據(jù)而不是在前面或中間,并且需要隨機(jī)地訪問(wèn)其中的元素時(shí),使用ArrayList會(huì)提供比較好的性能;

而訪問(wèn)鏈表中的某個(gè)元素時(shí),就必須從鏈表的一端開(kāi)始沿著連接方向一個(gè)一個(gè)元素地去查找,直到找到所需的元素為止,所以,當(dāng)你的操作是在一列數(shù)據(jù)的前面或中間添加或刪除數(shù)據(jù),并且按照順序訪問(wèn)其中的元素時(shí),就應(yīng)該使用LinkedList了。

Set的實(shí)現(xiàn)類有HashSet,TreeSet以及子類LinkedHashSet,這三個(gè)類是非線程安全的TreeSet是基于樹(shù)結(jié)構(gòu)的集合,LinkedHashSet具備按照插入先后順序訪問(wèn)的功能,HashSet訪問(wèn)元素的順序是不確定的,TreeSet的訪問(wèn)順序是按照樹(shù)接口的順序訪問(wèn)的Map的實(shí)現(xiàn)類有HashMap,IdentityHashMap,WeakHashMap,TreeMap,以及LinkedHashMap子類,這些類都是非線程安全的,WeakHashMap是一種改進(jìn)的HashMap,它對(duì)key實(shí)行“弱引用”,如果一個(gè)key不再被外部所引用,那么該key可以被GC回收。

HashTable是線性安全的,HashTable不能插入null空元素

看完上述內(nèi)容,你們對(duì)Java中如何使用集合框架有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI