天天看點

Java源碼-Collection結構介紹方法總結

目錄

  • 結構
  • 介紹
  • 方法
    • add(E) boolean / addAll(Collection 《? extend E>)boolean
    • clear()void
    • removeAll (Collection <? extend E>)boolean
    • remove(Object o)
    • size
    • boolean isEmpty()
  • 總結

結構

Java源碼-Collection結構介紹方法總結

介紹

通過閱讀API文檔,整理如下幾點要素:

  • 這個接口通常用于在需要最大通用性的地方傳遞集合并操作它們。包或多集(Bags or multisets)(無序的集合,可能包含重複的元素)應該直接實作這個接口。
  • 所有通用集合實作類(通常實作收集間接通過它的一個type)應**提供“标準”兩個構造函數:**一個空構造函數(沒有參數),它建立了一個空集合,和一個參數的構造函數類型集合,它建立一個新的集合相同的元素作為其參數。
  • 這個接口中包含的“破壞性”方法,即修改其操作所在集合的方法,被指定在該集合不支援該操作時抛出UnsupportedOperationException。例如,如果要添加的集合是空的,那麼在不可修改的集合上調用addAll(Collection)方法可能會抛出異常,但不是必須這樣做。
  • 試圖添加不符合條件的元素會引發未檢查異常,通常是NullPointerException或ClassCastException。
  • 試圖查詢不符合條件的元素的存在可能會引發異常,或者隻傳回false
  • 嘗試對不符合條件的元素執行操作,而該元素的完成不會導緻将不符合條件的元素插入到集合中,這可能會引發異常,也可能會成功,取決于實作的選擇
  • 由每個集合決定自己的同步政策。
  • 一些執行集合遞歸周遊的集合操作可能會失敗,但對于集合直接或間接包含自身的自引用執行個體例外。這包括clone()、equals()、hashCode()和toString()方法。

方法

add(E) boolean / addAll(Collection 《? extend E>)boolean

add(E) boolean 描述如下:

  • 集合在添加後發生改變(了解為插入成功),傳回true,如果這個集合不允許重複(Set),并且已經包含指定的元素,則傳回false。
  • 支援此操作的集合可能會限制向該集合添加哪些元素。(一些集合将拒絕添加空元素,而其他集合将對可能添加的元素類型施加限制)
  • 如果集合拒絕添加一個特定的元素,那麼它必須抛出一個異常(而不是傳回false)。

addAll(Collection 《? extend E>)boolean 描述如下

  • 将指定集合中的所有元素添加到此集合(可選操作)
  • 修改成功傳回true

clear()void

删除所有元素

removeAll (Collection <? extend E>)boolean

删除指定集合中也包含的此集合的所有元素

remove(Object o)

如果指定元素存在((o == null ? e==null : o.equals(e))),則從該集合中移除該元素的單個執行個體

size

傳回集合内元素的個數

boolean isEmpty()

判斷是否為空

總結

這是第一次看有關源碼的内容,對此進行簡短的總結:

  • 沒必要詳細記錄類或借口的方法以及特點,以後的内容對于方法僅用一個詞進行作用概括,用法比較偏僻的将不記錄,用到時再去查查API
  • 有關類的層次關系圖還是有必要畫畫的
  • 着重點在于源碼内對于具體細節的實作,考慮其中所涉及的設計模式、思想、原理等