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。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容