1:collection 介面 主要包括 list 介面與set 介面 這兩個介面是我們比較常用的,用來對單個物件進行操作的
1.list介面,適合遍歷與排序,不適合插入與刪除操作。 是有序的,允許有重複元素,允許有null值。它主要的實現類有
(1) arraylist: 此資料結構是基於動態陣列來實現的。預設初始陣列大小為10,動態擴充的演算法是:原來陣列
大小+原來陣列/2;執行緒不安全,jdk1.2出現的。
(2) vector : 此資料結構是基於動態陣列來實現的。預設初始陣列大小為10,動態擴充演算法是:原來陣列大
小+增量,如果增量為0,擴充演算法為:原來陣列大小*2執行緒安全,jdk1.0的時候就有了。
(3) linkedlist:沒有預設容量, 此資料結構是基於鍊錶來實現的。相對於前面兩個來說更加適合新增和刪除,
不適合查詢和遍歷。執行緒不安全。
2. set介面,適合插入與刪除操作,不適合遍歷。是無序的,不允許有重複值,只允許有乙個null值。
(1) hashset: 此資料結構是基於動態陣列和鍊錶來實現的。預設初始動態陣列大小為16,動態擴充演算法是:當
儲存空間的大小達到載入因子的比例的,原來陣列大小*2。執行緒不安全,適合大資料的儲存。通過hashcode()
方法來儲存物件的位置。 通過重寫equlse()與hashcode()來保證新增的物件是否重複。
(2) linkedhashse
t:是hashset 的子類,使用鍊錶來維護新增順序的乙個雜湊表實現,來解決排序問題。
(3)treeset:此資料結構是基於二叉樹來實現的。是有序的,排序是基於comparable介面來實現的。執行緒不安全,
不允許有null值。
2:map介面 主要包括hashmap,hashtable,treemap,linkedhashmap。此介面用於對兩個物件一起進行操作,乙個是key ,
乙個是value。
(1)hashmap:基於雜湊表來實現的,預設容量為16,動態擴充演算法是:當儲存空間的大小達到載入因子的比例的,
原來陣列大小*2。 執行緒不安全。無序的,允許有null的鍵和值,jdk1.2引進。其父類是abstracmap。
(2) hashtable:基於雜湊表來實現的,預設容量為11,動態擴充演算法是:當儲存空間的大小達到載入因子的比例的,
原來陣列大小*2+1。執行緒安全。無序的,允許不允許有null的鍵和值,jdk1.0引進。其父類是
dictionary。
(3)treemap:基於二叉樹的紅黑平衡樹實現的,執行緒不安全,可以實現自然順序排序,當key為自定義物件時,該對
象必須實現comparable介面來比較物件的排序,並且用於檢測重複值。
集合框架 Collection
collection是集合框架體系中的根介面,它有兩個常用的子介面,別是list和set list 有序 儲存順序和取出順序一致 可重複。實現了list介面的子類以及這些子類的區別 arraylist 底層資料結構是陣列,查詢快,增刪慢。執行緒不安全,效率高。vector 底層資料結構是陣列,查詢快...
集合框架Collection
collection集合用於儲存物件,長度是可變的,共有的方法有 增 add 刪 remove 獲取 size 判斷 contains,isempetylist 集合是 有順序,可以重複,其中特有的方法有 獲取 get sublist listiterator 改 set arraylist 底層是...
Java之集合框架Collection
一 集合框架概述 1 集合類的出現 物件導向語言對事物的體現的體現都是以物件的形式,所以為了方便對多個物件的操作,就對物件進行儲存,集合就是儲存物件最常用的一種方式。2 陣列與集合的異同 陣列和集合同是容器,陣列既能儲存基本資料型別,也能儲存物件,集合只能儲存物件,陣列的長度是固定的,集合的長度是可...