#粤嵌星计划##粤嵌我来了#
#粤嵌星计划,粤嵌我来了#
#每天知多D#
今天介绍java的集合,
Collection集合是接口,分为两大类:List和Set。
其中List阵营有ArrayList,Vector,LinkedList,
Set阵营有HashSet,LinkedHashSet,TreeSet。
ArrayList是在工作很常用的一种容器。但它不是线程安全的,Vector便是其线程安全版,使用基本大同小异。
以下为我对几种集合的比较,浅显易懂。
分类 | 集合 | 底层数据结构 | 特点 | 是否有序 | 是否可以重复 | 是否有索引值 | 是否可以为null | 线程是否安全 | |
Collection | List | ArrayList | 数组 | 查询快,增删慢 | 有 | 可以 | 有 | 可以 | 否 |
Vector | 数组 | 查询快,增删慢 | 有 | 可以 | 有 | 可以 | 是 | ||
LinkedList | 双链表 | 查询慢,增删快 | 有 | 可以 | 有 | 可以 | 否 | ||
Set | HashSet | 哈希表 | 增删改查都较快 | 无 | 否 | 否 | 可以 | 否 | |
LinkedHashSet | 哈希表+链表 | 增删改查都较快 | 有 | 否 | 否 | 可以 | 否 | ||
TreeSet | 红黑树 | 可以自定义比较器 | 有序(自定义) | 否 | 否 | 不可以 | 否 |