天天看點

Java學習筆記(十)collections架構概述架構的接口架構的實作架構的算法

架構的接口

架構的接口就是該架構支援的抽象的資料類型。

包含四種核心的類型,根據是否有序,又延伸出了兩種具體的類型。

Java學習筆記(十)collections架構概述架構的接口架構的實作架構的算法

Collection

Colletion接口可以了解為是一個寬泛概念的存儲資料元素的集合。它可能支援元素重複也可能不支援,它可能支援有序或者不支援,與它的具體實作相關。

- List接口是Collection的一個特化,它的元素會重複,但是有序。

- Set接口是Collection的另一個特化,它的元素特異,但是如果要規定有序,還要使用SortedSet

Map

Map接口是一個存儲關鍵字-數值對的資料集合。如果需要有序,那麼使用的SortedMap

架構的實作

下面一個表總結了接口的不同的實作。

Java學習筆記(十)collections架構概述架構的接口架構的實作架構的算法

注意:

- 所有的實作都不包含加鎖的代碼,也就是沒有被synchronized标注的代碼塊,也就是說你可以選擇添加或者不添加同步鎖。

- 如果出現fail-fast事件,也就是在某個線程周遊某個集合的過程中,出現了另外一個線程中修改了目前的集合,那麼會抛出ConcurrentModificationException異常,發現fail-fast事件。

- 所有的實作都是支援序列化(serializable)和克隆(clone)的。

- 所有的實作都支援null執行個體。

- 一個實作不一定包含接口中的全部函數的實作,如果出現了某個接口的定義但是對象執行個體不支援的方法,那麼會傳回UnsupportedOperationException異常。

架構的算法

架構的所有接口都支援一系列操作資料集合的函數。展現了多态