Java 基礎 | Collection 集合概覽

題圖

老讀者都知道,我是自學轉行到 java 的。那時迫於生存壓力,學得比較快,不少知識點僅停留在會用的層面。最近,光會用不知道原理,沒什麼意思。每次使用時都是機械性的 "熟練使用"。加之一直有迴歸基礎的想法,因此想在業餘時間覆盤 java 的基礎知識。知其然知其因此然是技術人的追求。java

說到覆盤基礎,並非全部的都會覆盤,沒那個時間更沒那個必要。好比,一些基礎的語法以及條件語句,極度簡單。這類是不須要覆盤的。思前想後,我以爲整個計劃應該從集合開始,而覆盤的方式就是讀源碼。數組

一、Java 爲何要有集合?

首先,java 是一門面向對象語言,操做對象是咱們的平常。既然操做就須要有東西把對象存儲起來。因而容器就應運而生,初學者接觸到的第一個容器就是數組,但這遠遠不夠,根據不一樣的對象以及不一樣的業務,咱們須要用到不一樣的容器。好比,不想要重複對象,咱們就會想到用 set 容器,想要對象有序咱們會用 List 。無論是 List、Set。他們都會有共性, 而 java 就根據這些共性,給咱們提供了 Collection 集合。數據結構

二、Collection 接口框架圖

Collection

由上面的 Collection 接口框架圖,咱們能夠知道 Collection 是 List、Set、Queue 的父接口,看到這裏,大家可能會問,Map 哪去了?其實,Java 中的容器,包括 Collection 和 Map ,Map 是另一個體系,因此咱們今天先不講 Map 。框架

三、Collection 的方法

Collection

Collection 接口定義了以上待實現的方法。好比:spa

  • size() 計算容器長度
  • isEmpty() 是否爲空
  • contains() 是否包含某個對象
  • containsAll() 是否包含另外一個集合的全部對象
  • iterator() 上層接口 iterable 的方法,用於生成迭代對象,遍歷對象
  • add() 添加一個對象
  • add() 添加另外一個集合的全部對象
  • remove() 移除一個對象
  • removeAll() 移除全部對象
  • toArray() 把集合轉換成數組
  • retainAll() 是否與另外一個集合有交集

四、List 子接口

List 集合的特色是元素有序、可重複,它包含了 ArrayList、Vendor 和 LinkedList 這三個實現類。三者比較以下:設計

List

五、Set 子接口

Set 集合最大的特色是不容許重複元素,它有 HashSet、TreeSet、LinkedHashSet 、EnumSet 四個實現類,對好比下:3d

Set

至於EnumSet 類,我還沒研究過怎麼使用,在網上查了下,它是專爲枚舉類設計的集合類,EnumSet 中的全部元素都必須是指定枚舉類型的枚舉值,具體的這裏先不作介紹,待我研究下用法以及場景,再專門介紹。代理

六、Queue 子接口

Queue 用的很少,它經常使用於模擬隊列這種數據結構,實現 FIFO 等數據結構。一般,隊列不容許隨機訪問隊列中的元素。在工做中,我尚未使用過,待我研究過,再來跟你們分享。對象

推薦閱讀:

一、java | 什麼是動態代理blog

二、SpringBoot | 啓動原理

三、SpringBoot | 自動配置原理

一個優秀的廢人

相關文章
相關標籤/搜索