整理java集合

1. map

实现类,

HashMap

无序, 键值可为null ,非同步

Hashtable

无序, 键值非null,作键的对象必须实现 hashCode 方法和 equals , 同步, 性能低

LinkedHashMap

有序记录插入顺序,如果在映射中重新插入 键,则插入顺序不受影响.允许 null 元素 ,与 HashMap 一样规范,维护着一个运行于所有条目的双重链接列表,此链接列表定义了迭代顺序(插入顺序)。

ConcurrentHashMap

与hashtable相同规范,它们都可以用于多线程的环境,但是当Hashtable的大小增加到一定的时候,性能会急剧下降,因为迭代时需要被锁定很长的时间。因为ConcurrentHashMap引入了分割(segmentation),不论它变得多么大,仅仅需要锁定map的某个部分,而其它的线程不需要等到迭代完成才能访问map。简而言之,在迭代的过程中,ConcurrentHashMap仅仅锁定map的某个部分,而Hashtable则会锁定整个map

TreeMap

基于红黑树,该映射根据其键的自然顺序进行排序

2. list

ArrayList

基于可变数组实现, 允许null元素,不支持同步

LinkedList

基于连表实现, 提供先进先出队列操作,允许null元素,非同步,

Stack

表示后进先出 ,它通过五个操作对类 Vector 进行了扩展 ,它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法

Vector

实现可增长的对象数组, 线程安全, Vector类对集合的元素操作时都加了synchronized

3. Set

HashSet

无序, 非同步, 允许使用 null 元素,由哈希表(实际上是一个 HashMap 实例)支持。

LinkedHashSet

有序, 非同步, 维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序

TreeSet

使用元素的自然顺序对元素进行排.

EnumSet

与枚举类型一起使用的专用 Set 实现。枚举 set 中所有键都必须来自单个枚举类型,枚举 set 在内部表示为位向量。此表示形式非常紧凑且高效。此类的空间和时间性能应该很好,足以用作传统上基于 int 的“位标志”的替换形式,具有高品质、类型安全的优势。如果其参数也是一个枚举 set,则批量操作(如 containsAll 和 retainAll)也应运行得非常快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值