java集合内容_Java集合内容归纳

Java集合常用的是List、Set、Map这个三个接口,对内容归纳下,以便后续有新的知识点扩张也好分清界限。

1、List主要实现:

线程不安全:

1)ArrayList:基于数组实现。

2)LinkedList:基于链表实现。

线程安全:

1)Vector:基于数组实现,安全基于同步锁实现

2)SynchronizedList:这个是Collections生成的内部类,其实就是封装了一层,用的同步锁。

3)CopyOnWriteArrayList:基于数组实现,安全基于ReentrantLock实现,add操作效率极差,没有扩容机制。

2、Set主要实现:

线程不安全:

1)HashSet:基于HashMap实现,用来去重。

2)TreeSet:基于TreeMap实现,用来去重加排序。

3)WeakHashMap:基于数组+链表,链表是WeakReference的子类,没用过,这一般也用的很少,使用场景也特殊,用来实现弱引用以便垃圾回收。

线程安全:

1)SynchronizedSet:这个是Collections生成的内部类,其实就是封装了一层,用的同步锁。

2)CopyOnWriteArraySet:基于CopyOnWriteArrayList实现,安全基于ReentrantLock实现。

3)ConcurrentSkipListSet:基于ConcurrentSkipListMap,安全基于CAS 。

3、Map主要实现

线程不安全:

1)HashMap:基于数组+链表+红黑树实现。

2)TreeMap:基于红黑树实现,用于有序。

线程安全:

1)HashTable:基于数组+链表,安全基于同步锁,性能差。

2)ConcurrentHashMap:基于数组+链表+红黑树实现,安全基于同步锁+CAS。

3)ConcurrentSkipListMap:基于链表实现,用于有序,有序基于跳表实现,安全基于CAS。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值