編程隨筆-java編程知識收納-容器

JDK容器

??java中的容器使用是java程序員在編程開發(fā)中必不可少的技能,就算是剛?cè)腴T的java程序員,也一定會用到ArrayList,Hashmap這樣的容器。在《java編程思想》提供了一張JDK中容器的知識圖譜,而自JDK1.5后也增加了不少新的容器 類?;艘稽c時間,把JDK中的容器類以導(dǎo)圖的形式描述出來,做為一個以后工作的備查記錄。
??JDK中 的容器種類繁多,但常用的可能也就不到十種,讓我們做一個簡單的脈絡(luò)梳理。
??JDK中的容器源自兩個接口: Map和Collection。這兩個接口描述了自然世界中兩種典型的集合類型:Collection是普通對象的集合,而Map則 是名值對(特殊對象)的集合。由Collection接口衍生出了List和Set兩個接口,這里我們可以簡單地認(rèn)為List是可以有重復(fù)元素的集合,而Set符合代理中的集合概念,是一個沒有重復(fù)元素的集合(JAVA中判斷兩個對象是否相同,可根據(jù)重寫的equals函數(shù))。
??由List接口,可衍生出列表,堆棧,隊列三類容器對象。列表對象中常用的是ArrayList和LinkedList,在實現(xiàn)形式上應(yīng)對 一維向量與雙向鏈表,由于 LinkedList是雙向鏈表,因而也可以作為隊列使用,遍歷可使用listIterator從反向遍歷。堆??梢暈橐粋€LIFO的隊列,典型的實現(xiàn)類是Stack。隊列概念上是一個FIFO的隊列,在接口中有單向Queue和雙向Deque兩類接口,大家可以關(guān)注一下PriorityQueue(實現(xiàn)上為一個完全搜索二叉樹)和DelayQueue這兩類比較特殊的隊列,在并發(fā)編程中常會用到。在隊列的實現(xiàn)類中還有一類名字中帶“Blocking”的隊列實現(xiàn)類,這類容器可在條件滿足時阻塞線程。
??由Set接口,衍生出的實現(xiàn)類中常用的為HashSet和TreeSet,需要注意的是TreeSet是一個有序集合。
??由Map接口,衍生出的實現(xiàn)類有HashMap和HashTable。
??對于JDK中的容器,使用迭代器Iterator進行元素的遍歷是最常用的方法,而在使用時,設(shè)置一個初始容量(針對提供該特征的某些容器)也非常有必要。在JDK1.5之后,java.util.concurrent 包中增加了一些線程安全的容器類(如ConcurrentHashMap),可實現(xiàn)基礎(chǔ)操作的原子性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,427評論 0 2
  • 面向?qū)ο笾饕槍γ嫦蜻^程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,220評論 0 4
  • java基礎(chǔ) 集合承繼包含圖 Collection vs Collections 首先,"Collection" ...
    onlyHalfSoul閱讀 1,433評論 0 5
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,812評論 0 11
  • 四、集合框架 1:String類:字符串(重點) (1)多個字符組成的一個序列,叫字符串。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 874評論 0 2

友情鏈接更多精彩內(nèi)容