AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

Java 集合框架超詳細!

來源: 責(zé)編: 時間:2023-10-10 18:32:12 293觀看
導(dǎo)讀簡介Java 提供了用于管理和操作數(shù)據(jù)的接口。這稱為 Java 集合框架 (JCF)。由于它根據(jù)要存儲和管理的數(shù)據(jù)的類型和特征提供各種形式和實現(xiàn),讓我們根據(jù)需要的情況應(yīng)用和使用它。JCFJCF是指一個數(shù)據(jù)集接口框架,它統(tǒng)稱為 Co

yND28資訊網(wǎng)——每日最新資訊28at.com

簡介

Java 提供了用于管理和操作數(shù)據(jù)的接口。yND28資訊網(wǎng)——每日最新資訊28at.com

這稱為 Java 集合框架 (JCF)。yND28資訊網(wǎng)——每日最新資訊28at.com

由于它根據(jù)要存儲和管理的數(shù)據(jù)的類型和特征提供各種形式和實現(xiàn),yND28資訊網(wǎng)——每日最新資訊28at.com

讓我們根據(jù)需要的情況應(yīng)用和使用它。yND28資訊網(wǎng)——每日最新資訊28at.com

JCF

yND28資訊網(wǎng)——每日最新資訊28at.com

JCF是指一個數(shù)據(jù)集接口框架,它統(tǒng)稱為 Collection 和 Map 接口。yND28資訊網(wǎng)——每日最新資訊28at.com

一組數(shù)據(jù)被定義為 Collection ,它擴展了 Iterable 接口。yND28資訊網(wǎng)——每日最新資訊28at.com

Iterable 實現(xiàn)了一個接口結(jié)構(gòu),允許訪問屬于集合的元素。yND28資訊網(wǎng)——每日最新資訊28at.com

this 的訪問被定義為通過 Iterator 訪問。yND28資訊網(wǎng)——每日最新資訊28at.com

Collection 提供一維數(shù)據(jù)管理。yND28資訊網(wǎng)——每日最新資訊28at.com

具有代表性的Collection實現(xiàn)接口如下:yND28資訊網(wǎng)——每日最新資訊28at.com

List :保證順序,不保證唯一性(即可能出現(xiàn)重復(fù))。yND28資訊網(wǎng)——每日最新資訊28at.com

Queue:實現(xiàn)了一個通用的隊列類型結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

Set :不保證順序,但保證唯一性(不重復(fù))。yND28資訊網(wǎng)——每日最新資訊28at.com

Map: 具有二維(鍵值)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

List

一個索引的、有序的集合。yND28資訊網(wǎng)——每日最新資訊28at.com

典型的實現(xiàn)類是:yND28資訊網(wǎng)——每日最新資訊28at.com

  • ArrayList

每個數(shù)據(jù)都附有索引(順序),通過它可以快速訪問。yND28資訊網(wǎng)——每日最新資訊28at.com

但是,在刪除或插入中間數(shù)據(jù)的情況下,整個數(shù)據(jù)結(jié)構(gòu)都會被修改。yND28資訊網(wǎng)——每日最新資訊28at.com

因此,內(nèi)存效率低下。yND28資訊網(wǎng)——每日最新資訊28at.com

  • LinkedList

為每個數(shù)據(jù)生成一個點,并使用該點組成每個數(shù)據(jù)。yND28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)刪除或插入發(fā)生時,內(nèi)存效率低下最小化,但搜索數(shù)據(jù)時時間很慢。yND28資訊網(wǎng)——每日最新資訊28at.com

  • Vector

線程安全得到保證,在訪問線程時通過加鎖來保證線程同步。yND28資訊網(wǎng)——每日最新資訊28at.com

它用于保證在多線程環(huán)境中的穩(wěn)定值。yND28資訊網(wǎng)——每日最新資訊28at.com

  • Stack

這是一個典型隊列結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

Set

是一種不保證順序,保證唯一性的數(shù)據(jù)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

也就是說,它是一個不重疊的無序數(shù)據(jù)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

HashSet : 最純粹的集合數(shù)據(jù)結(jié)構(gòu),完全隨機排序。yND28資訊網(wǎng)——每日最新資訊28at.com

通過覆蓋equals和hashCode,區(qū)分對象,從根本上防止重復(fù)存儲。yND28資訊網(wǎng)——每日最新資訊28at.com

LinkedHashSet:這是一個Set數(shù)據(jù)結(jié)構(gòu),按照輸入順序存儲數(shù)據(jù)。yND28資訊網(wǎng)——每日最新資訊28at.com

它繼承并實現(xiàn)了HashSet,按插入順序管理數(shù)據(jù)。yND28資訊網(wǎng)——每日最新資訊28at.com

TreeSet:是一種內(nèi)部按升序排序的Set數(shù)據(jù)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

添加和刪除數(shù)據(jù)需要時間,但搜索和排序非常好(當(dāng)然因為它是樹結(jié)構(gòu)...)yND28資訊網(wǎng)——每日最新資訊28at.com

Map

它是一種以鍵值格式以二維形式管理數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

導(dǎo)入數(shù)據(jù)時,一種序列是鍵,它所在的列是值,所以你可以把它看成是一個即時的、動態(tài)的小型數(shù)據(jù)庫。yND28資訊網(wǎng)——每日最新資訊28at.com

基本上不保證數(shù)據(jù)標識符Key的順序。yND28資訊網(wǎng)——每日最新資訊28at.com

  • HashMap:是一種純Map數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)以完全隨機的順序存儲。
  • TreeMap:它是一種Map數(shù)據(jù)結(jié)構(gòu),其中的鍵在內(nèi)部進行了排序。

插入刪除操作速度快,特點是自動排序。yND28資訊網(wǎng)——每日最新資訊28at.com

  • HashTable:線程安全的同步方法組合。

因此,它是一種用于在多線程環(huán)境下保證穩(wěn)定值的數(shù)據(jù)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

  • LinkedHashMap:它是一種Map數(shù)據(jù)結(jié)構(gòu),按照輸入的順序存儲數(shù)據(jù)。

HashMap 是隨機輸出和有序結(jié)構(gòu),而 LinkedHashMap 保持插入順序。yND28資訊網(wǎng)——每日最新資訊28at.com

Queue

它是一種數(shù)據(jù)結(jié)構(gòu),對應(yīng)于隊列數(shù)據(jù)結(jié)構(gòu)的一般概念。yND28資訊網(wǎng)——每日最新資訊28at.com

從尾巴到超市結(jié)賬的方法(排隊)yND28資訊網(wǎng)——每日最新資訊28at.com

計算方式與頭部(出隊)結(jié)構(gòu)相同。yND28資訊網(wǎng)——每日最新資訊28at.com

  • AbstractQueue:最純粹的隊列數(shù)據(jù)結(jié)構(gòu)。

它是第一個為優(yōu)先級隊列構(gòu)造的隊列對象,允許將其聲明和實現(xiàn)為原始隊列。yND28資訊網(wǎng)——每日最新資訊28at.com

與一般通過中間數(shù)據(jù)結(jié)構(gòu)的其他數(shù)據(jù)結(jié)構(gòu)不同,它實現(xiàn)了 AbstractCollection 類,這是 Collection 接口的抽象類。yND28資訊網(wǎng)——每日最新資訊28at.com

  • LinkedList:這是一個使用鏈表實現(xiàn)的隊列數(shù)據(jù)結(jié)構(gòu)。

這是一個用于實現(xiàn)通用隊列的實現(xiàn)類。yND28資訊網(wǎng)——每日最新資訊28at.com

  • ArrayDeque:這是一個作為甲板數(shù)據(jù)結(jié)構(gòu)實現(xiàn)的隊列數(shù)據(jù)結(jié)構(gòu)。

可以在前端(head)和尾部(tail)同時實現(xiàn)出隊(刪除)和入隊(插入)操作。yND28資訊網(wǎng)——每日最新資訊28at.com

  • PriorityQueue:這是一個優(yōu)先級隊列數(shù)據(jù)結(jié)構(gòu)。

通過為每個數(shù)據(jù)實現(xiàn)優(yōu)先級來排隊處理任務(wù)yND28資訊網(wǎng)——每日最新資訊28at.com

  • BlockingQueue:這是為確保線程安全而實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)。

如果兩個線程同時訪問出隊任務(wù),就會出現(xiàn)異常。yND28資訊網(wǎng)——每日最新資訊28at.com

為了解決這個問題,通過 Concurrent 包實現(xiàn)并提供了阻塞的概念。yND28資訊網(wǎng)——每日最新資訊28at.com

它通過線程等待通用隊列的 put、offer、take、poll、peek 來工作。yND28資訊網(wǎng)——每日最新資訊28at.com

換句話說,如果隊列在條目之間飽和或為空,或者如果另一個線程正在訪問它,則線程等待并在它被釋放時執(zhí)行命令。yND28資訊網(wǎng)——每日最新資訊28at.com

特別是,可以使用一種稱為 drainTo(Collection) 的方法,放入該集合的所有元素 (c)yND28資訊網(wǎng)——每日最新資訊28at.com

可以使用下面兩種來實現(xiàn):yND28資訊網(wǎng)——每日最新資訊28at.com

  • ArrayBlockingQueue
  • LinkedBlockingQueue

Deque(雙端隊列)

擴展 Queue 接口的概念。yND28資訊網(wǎng)——每日最新資訊28at.com

一個普通的隊列可以從Head取數(shù)據(jù)(dequeue),從tail放數(shù)據(jù)(enqueue)。yND28資訊網(wǎng)——每日最新資訊28at.com

實現(xiàn)方式:yND28資訊網(wǎng)——每日最新資訊28at.com

  • linkedList:基于 LinkedList 的索引數(shù)據(jù)結(jié)構(gòu)。

它是一種允許基本甲板構(gòu)造的實現(xiàn)。yND28資訊網(wǎng)——每日最新資訊28at.com

  • ArrayDeque:這是一種用于構(gòu)建索引的數(shù)據(jù)結(jié)構(gòu)。

此實現(xiàn)由 Array 支持,因此非常高效,因為它會立即移動而無需額外的內(nèi)存引用。yND28資訊網(wǎng)——每日最新資訊28at.com

  • LinkedBlockingDeque

提供允許單個線程一次只能訪問一個(阻塞)的功能。yND28資訊網(wǎng)——每日最新資訊28at.com

  • ConcurrentLinkedDeque:保證并行線程安全的索引結(jié)構(gòu)。

正如Concurrent這個詞所說的那樣,它是一種保證ThreadSafe的保證數(shù)據(jù)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

由于是Linked數(shù)據(jù)結(jié)構(gòu),所以具有Linked的大部分優(yōu)點和缺點。yND28資訊網(wǎng)——每日最新資訊28at.com

Stack

它是一種實現(xiàn)常用棧概念的數(shù)據(jù)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

既然是繼承了遺留的Vector構(gòu)建的數(shù)據(jù)結(jié)構(gòu),那么Thread Safe自然是有保證的,yND28資訊網(wǎng)——每日最新資訊28at.com

由于并發(fā)訪問線程固定為單一數(shù)據(jù)結(jié)構(gòu),不適合作為多線程環(huán)境下的數(shù)據(jù)結(jié)構(gòu)。yND28資訊網(wǎng)——每日最新資訊28at.com

  • Stack:這是一種常用的棧數(shù)據(jù)結(jié)構(gòu)。

堆中使用的概念被實現(xiàn)為方法。yND28資訊網(wǎng)——每日最新資訊28at.com

Iterator(迭代器)

Iterator 是一個接口,它指定了一個可訪問由 Collection 擴展的 Iterable 的接口。yND28資訊網(wǎng)——每日最新資訊28at.com

該實現(xiàn)可以訪問 Collection 并檢索其元素。yND28資訊網(wǎng)——每日最新資訊28at.com

Iterable(可迭代對象)

簡單來說,F(xiàn)or語句可以操作的數(shù)據(jù)結(jié)構(gòu)是Iterable數(shù)據(jù)結(jié)構(gòu)的一種實現(xiàn)。yND28資訊網(wǎng)——每日最新資訊28at.com

換句話說,如果目標數(shù)據(jù)可以通過迭代(for,while)訪問,它擴展了Iterable。yND28資訊網(wǎng)——每日最新資訊28at.com

  • 任何 Iterable 擴展接口實現(xiàn)

當(dāng)然...擴展 Iterable 的實現(xiàn)是 Iterable 的目標。yND28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

以上內(nèi)容是很基礎(chǔ)的集合知識,幫助我們平時開發(fā)的時候更正確的去使用集合結(jié)構(gòu)以及避免BUG困擾。這些知識需要牢記,值得反復(fù)查閱。yND28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-12746-0.htmlJava 集合框架超詳細!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 面試中如何答好:CAS

下一篇: PixiJS 源碼解讀:繪制矩形的渲染過程講解

標簽:
  • 熱門焦點
Top