java知识系列之集合理论篇
本文主要综合介绍java集合中比较重要的一些概念和实现。如下图 基础部分 Collection List :接口实例存储的是 有序的 , 可以重复 的元素。 ArrayList - 底层使用数组 - 读取速度快,增删速度慢 - 不是线程安全的,只能在单线程环境下,多线程环境下可以考虑用collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发CopyOnWriteArrayList类。 - 当容量不够时,当前容量*1.5+1 LinkedList 底层使用双向链表数据结构 读取速度慢,增删快 线程不安全 implements List, Deque。实现List接口,能对它进行队列操作,即可以根据索引来随机访问集合中的元素。同时它还实现Deque接口,即能将LinkedList当作双端队列使用。自然也可以被当作"栈来使用" Vector 底层使用数组 读取速度快,增删慢 线程安全,效率低 容量不够时,默认扩展一倍 Stack Stack是Vector提供的一个子类,用于模拟"栈"这种数据结构(LIFO后进先出 小结 java提供的List就是一个"线性表接口",ArrayList(基于数组的线性表)、LinkedList(基于链的线性表)是线性表的两种典型实现 Queue代表了队列