接口List<E>常用实现类分析
来源:互联网 发布:幸运双色球过滤软件 编辑:程序博客网 时间:2024/06/05 15:06
List<E>常用的实现类包括:ArrayList<E>,LinkedList<E>,Stack<E>和Vector<E>。
ArrayList<E>:List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)
初始容量可以通过构造方法来指定,如下图:
观察ArrayList的构造方法可知,默认不传参newArrayList,容量为10,如果传入一个int值,容量为传入的int值,如果入参为一个Collection,则容量为Collection的大小。
扩容策略为新容量为原容量的1.5倍((原始容量x3)/2 + 1)。
LinkedList<E>:List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。下图为LinkedList<E>的构造方法。
Stack<E>:Stack 类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法。构造方法如下图:
首次创建堆栈时,它不包含项。
Vector<E>:Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。每个向量会试图通过维护 capacity 和 capacityIncrement 来优化存储管理。capacity 始终至少应与向量的大小相等;这个值通常比后者大些,因为随着将组件添加到向量中,其存储将按 capacityIncrement 的大小增加存储块。应用程序可以在插入大量组件前增加向量的容量;这样就减少了增加的重分配的量。
Vector 初始容量10 capacityIncrement容量扩展步长:步长<= 0时(默认0),容量倍增;步长 >0 时,按步长扩展容量;
- 接口List<E>常用实现类分析
- List接口常用实现类的特点和底层实现
- 【广告项目】Java 实现list接口的三个常用类
- 黑马程序员:Java基础总结----子接口 List<E>及其实现类
- java常用类:List接口常用方法
- Collection<E>子接口之List<E>
- list接口及实现类
- 9.3-全栈Java笔记:List接口常用实现类的特点和底层实现
- List接口常用子类
- java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析
- Java单例集合下List接口的常用实现类
- List接口分析
- List接口分析
- 集合 List<E>接口的方法简介
- java当中的List<E> 接口
- List接口及其实现类、Map接口及其实现类
- List<E>类
- List 实现类 转 接口类
- jQuery选择器案例
- java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before
- 模版元编程之——Type Traits
- Qt提取EXE文件的大图标
- 笔试and心态
- 接口List<E>常用实现类分析
- Android开发随手记1
- AS项目新建错误:cant resolve symbol R
- C++模板类函数的使用以及如何使用时间作为文件名保存文件
- 第一次尝试博客
- QT7 How to connect Qt to SQLite
- Visual Studio中的环境变量(以Visual Studio 2013为例)
- wireshark解析自定义通信协议插件之Lua实现
- 机器人工具箱-6自由度机器人建模