Java中集合种类多,功能以及特性各异,为了便于记忆和使用,花了一些时间制作了一种Java常见集合一览表。
| Java常见集合一览表 | |||||
| 集合 | 接口/类 | K/E | V | 是否线程安全 | 说明 |
| Collection | 接口 | N/A | N/A | N/A | 定义了集合的基本方法,如size、isEmpty等 |
| Vector | 类 | 可为null | N/A | 是 | 线性表的数组实现 |
| Stack | 类 | 可为null | N/A | 是 | 栈,Last in first out,继承自Vector |
| Queue | 接口 | N/A | N/A | N/A | 队列,First in first out |
| Deque | 接口 | N/A | N/A | N/A | 双向队列,Deque继承自Queue,并增加了首尾两端的进出队列操作 |
| ArrayList | 类 | 可为null | N/A | 否 | 与Vector的区别是其线程不安全 |
| LinkedList | 类 | 可为null | N/A | 否 | 线性表的链式实现,此外它还实现了Deque,即也实现了Queue |
| Map | 接口 | N/A | N/A | N/A | 一组元素结构为K、V型的集 |
| HashMap | 类 | 可为null | 可为null | 否 | Map的哈希表加链表实现,通过哈希函数能够快速地找到元素,无冲突的情况下仅需访问一次 |
| Set | 接口 | N/A | N/A | N/A | 一组元素值唯一的集 |
| HashSet | 类 | 可为null | N/A | 否 | 内部使用HashMap实现,K对应E,V保存了一个Object (PRESENT) |
| HashTable | 类 | 不可为null | 不可为null | 是 | HashTable与HashMap的区别是其线程安全,同时它不允许K、V为null |
| TreeMap | 类 | 不可为null | 可为null | 否 | Map的二叉平衡树实现,根据K的hashcode排序 |
| TreeSet | 类 | 不可为null | N/A | 否 | 内部由TreeMap实现,K对应E,V保存了一个Object(PRESENT) |
| ConcurrentHashMap | 类 | 不可为null | 不可为null | 是 | 线程安全的HashMap,HashTable的替代者 |
本文介绍Java中常见的集合类型,包括Collection、Vector、Stack、Queue、Deque、ArrayList、LinkedList、Map、HashMap、Set、HashSet、HashTable、TreeMap、TreeSet、ConcurrentHashMap等。详细对比了它们之间的特性、线程安全性及应用场景。
1340

被折叠的 条评论
为什么被折叠?



