JAVA-常用集合

Collection(普通集合类)

  • 继承了Iterable接口,具有迭代器特性
  • 可以转换为数组

List

  • 容量可变
  • 按索引访问
  • 有序
  • 可重复

ArrayList

  • 非线程安全
  • 允许快速随机存取
  • 等同与动态数组

LinkedList

  • 双向链表方式实现,内含first,last两个节点(Node),Node内包含prev和next
  • 最佳顺序存取
  • 适合插入和移除元素

Vector

  • 废弃

CopyOnWriteArrayList

  • /* The lock protecting all mutators /
    transient final ReentrantLock lock = new ReentrantLock();

    /* The array, accessed only via getArray/setArray. /
    private volatile transient Object[] array;

  • 使用锁和数组实现

Set

  • 不按特定方式排序
  • 不能有重复对象

HashSet

  • 默认使用的是hashMap,数据是放到key里的,value是个固定的final对象
  • 有个构造方法是可以设置为LinedHashMap,见LinkedHashSet

TreeSet

  • 元素按序存放
  • 内部默认使用的是TreeMap,数据是放到key里的,value是个固定的final对象

LinkedHashSet

  • 元素按序存放
  • 内部使用的HashSet(int initialCapacity, float loadFactor, boolean dummy),这个方法有初始化的是LinkedHashMap

ConcurrentSkipListSet

内部使用ConcurrentSkipListMap

CopyOnWriteArraySet

内部使用CopyOnWriteArrayList实现

MAP(KV集合类)

  • key不允许重复

HashMap

  • 非线程安全
  • 内部使用数组加链表实现.数组内放的是Entry,Entry的实现是个单向链表

LInkedHashMap

  • 继承HashMap
  • 内部保存一个Entry做为header 继承与HashMap的Set,这个新的是双向链表
  • 使用链表形式确保迭代顺序

TreeMap

  • 二叉树数据结构
  • 红黑树自平衡算法提高性能
  • 有排序

HashTable

  • 废弃

ConcurrentHashMap

  • 无序的
  • 线程安全
  • 内部集合
    transient Set keySet;
    transient Set

ConcurrentSkipListMap

  • 有序的
  • 线程安全
  • 内部集合
    /* Lazily initialized key set /
    private transient KeySet keySet;
    /* Lazily initialized entry set /
    private transient EntrySet entrySet;
    /* Lazily initialized values collection /
    private transient Values values;
    /* Lazily initialized descending key set /
    private transient ConcurrentNavigableMap

总结

  • 线程不安全的集合可以使用Collections.synchronized*来做安全的处理,放弃使用vector,hashtable等类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值