java常用集合類詳解

2021-07-17 06:03:46 字數 1693 閱讀 2044

||- - - - - - - set (set是基於map實現的,可以看作只有key,value為null的map,資料結構雜湊)

||- - - - - - - hashset() (hashmap,雜湊表,陣列+單向鍊錶,效能居中)

||- - - - - - - treeset ((二叉樹)紅黑樹,利用treemap)

||- - - - - - - list 基於鍊錶和陣列

||- - - - - - - arraylist (陣列,改查快,增刪不易

private

static

final

int default_capacity = 10;

int newcapacity = oldcapacity + (oldcapacity >> 1);

初始大小10,每次擴大當前容量的0.5倍

) |

|- - - - - - - linkedlist (雙向鍊錶,增刪易,改查慢)

- - - - - - - map

||- - - - - - - hashmap (陣列+雜湊表,無須)( 增刪改查效能不高不快

初始大小16,裝載因子0.75,(當容量大於當前容量的0.75時,擴充容量)最大容量為2*30

static

final

int default_initial_capacity = 1

<< 4; // aka 16

/** * the maximum capacity, used if a higher value is implicitly specified

* by either of the constructors with arguments.

* must be a power of two <= 1<<30.

*/static

final

int maximum_capacity = 1

<< 30;

/*** the load factor used when none specified in constructor.

*/static

final

float default_load_factor = 0.75f;

) |

|- - - - - - - treemap(二叉樹,紅黑樹,增刪改查效能不高不快)

||- - - - - - - linkedhashmap(hashmap的子類,可儲存插入的順序是linkedlist和hashmap的結合)

凡是需要排序的物件集合都需要被排序的物件實現比較器(compareable)或者傳入比較器comparetor,以確保物件具有比較能力

需要注意的是:使用hashset和hashmap等hash集合時,需要複寫equals和hashcode方法,才能保證物件的比較,確定物件是否在物件意義上是否為同一物件,而非在記憶體中.

Java 集合類詳解

上述類圖中,實線邊框的是實現類,比如arraylist,linkedlist,hashmap等,折線邊框的是抽象類,比如abstractcollection,abstractlist,abstractmap等,而點線邊框的是介面,比如collection,iterator,list等。發現乙個特點,...

Java集合類詳解

陣列 只能存放基本資料型別,長度固定,不適合在資料未定的情況下使用 集合 存放物件,長度可變,功能強大 jdk 中 主要的集合類分為兩種 collection 和 map 集合類框架圖如下 主要分為 collection和map兩大類 collection介面是集合類中的一種基類,jdk中並沒有它的...

Java集合常用類

集合的兩個頂級介面分別為 單列集合collection 和 雙列集合map 單列集合 collection 和雙列集合 map 特點如下 一 collection 單列集合類的根介面,有兩個重要的子介面,即 list 和 set set 介面特點是元素無序並且不可重複,主要實現類有 hashset ...