1. 程式人生 > >java常用集合選用指南

java常用集合選用指南

lan 應該 查找 排序 可重復 安全 每次 線程安全 100%

java集合在選用的時候應該選那個合適?一張表告訴你該怎麽選java集合

java集合類

是否線程安全

是否鍵值對

排序

性能

元素是否可重復

擴容策略

List接口

arraylist

維持存的時候的順序

查詢性能高,增刪元素性能低

1.5倍擴容,元素大於當前容量的100%時進行擴容

linkedlist

有順序

查詢性能低,增刪元素性能高

vector

有順序

Stack

有順序,先進後出

Map接口

hashmap

不排序

快速插入和查找

key不可重復,value可重復

2倍擴容,元素大於當前容量的75%時進行擴容

hashtable

不排序

key不可重復,value可重復

treeMap

根據key自動排序

快速插入和查找

key不可重復,value可重復

Set接口

hashset

不排序

快速插入和查找

treeset

默認升序排序(按照compare to接口返回值)

快速插入和查找

使用指南:

1 在集合場景明確的情況下,指定初始化容量,因為不指定容量,初始化容量為10,每次擴容都會對底層數組做一次拷貝,消耗性能;

2 所有集合底層存儲都是數組,數組可以存放基本類型,集合只能存對象

3 Java.lang.reflect.Array工具提供了對數組的操作;Java.util.collection工具提供了集合的操作

4 HashMap可以通過Map m = Collections.synchronizedMap(hashMap)來達到同步的效果

java常用集合選用指南