Java零基础学习-----JAVA核心类库(上)(六)
List集合的概念和ArrayList类的源码解析
List集合(重中之重)
基本概念:
- java.util.List集合是Collection集合的子集合,该集合中允许有重复的元素并且有先后放入次序。
- 该集合的主要实现类有:ArrayList类、LinkedList类、Stack类、Vector类。
- 其中ArrayList类的底层是采用动态数组进行数据管理的,支持下标访问,增删元素不方便。
- 其中LinkedList类的底层是采用双向链表进行数据管理的,访问不方便,增删元素方便。
- 可以认为ArrayList和LinkedList的方法在逻辑上完全一样,只是在性能上有一定的差别,ArrayList
更适合于
- 机访问而LinkedList更适合于插入和删除;在性能要求不是特别苛刻的情形下可以忽略这个差别。
- 其中Stack类的底层是采用动态数组进行数据管理的,该类主要用于描述一种具有后进先出特征的
数据结构,叫做栈(last in fifirst out LIFO)。
- 其中Vector类的底层是采用动态数组进行数据管理的,该类与ArrayList类相比属于线程安全的
类,效率比较低,以后开发中基本不用。
常用方法:
Stack类:
其中Stack类的底层是采用动态数组进行数据管理的,该类主要用于描述一种具有后进先出特征的
数据结构,叫做栈(last in fifirst out LIFO)
Vector类:
其中Vector类的底层是采用动态数组进行数据管理的,该类与ArrayList类相比属于线程安全的
类,效率比较低,以后开发中基本不用。(扩容:扩大2倍,ArrayList扩大1.5倍)
其中subList中,子类集合和当前集合共用同一块内存空间。
Queue类
基本概念:
- java.util.Queue集合是Collection集合的子集合,与List集合属于平级关系。
- 该集合的主要用于描述具有先进先出特征的数据结构,叫做队列(fifirst in fifirst out FIFO)。
- 该集合的主要实现类是LinkedList类,因为该类在增删方面比较有优势。
常用方法: