LinkedList类 和ArrayList类
2024-09-12 09:10:19
1)LinkedList类
LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
注意:LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:List list = Collections.synchronizedList(new LinkedList(…));
2) ArrayList类
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并 没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
和LinkedList一样,ArrayList也是非同步的(unsynchronized)。一般情况下使用这两个就可以了,因为非同步,所以效率比较高。
如果涉及到堆栈,队列等操作,应该考虑用List,对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。
最新文章
- Android安全相关文章[不定期更新…]
- 初识c#
- HDU1039-Easier Done Than Said?(字符串处理)
- centos7 系统初始化脚本
- jsp自定义标签(时间格式化包括Long转时间)
- Struts2的输入校验(2)——客户端校验
- mssql查询某个值存在某个表里的哪个字段的值里面
- python PIL下的各种问题
- 【转】android adb命令
- C# string LastIndexOf()
- css2如何设置全屏背景图片
- 利用百度地图api实现定位
- Postman-----设置环境变量
- yum 安装fuser命令
- es6快速入门
- IIS7下,显示PHP错误(不显示500错误,而显示详细错误)
- python正则表达式模块re:正则表达式常用字符、常用可选标志位、group与groups、match、search、sub、split,findall、compile、特殊字符转义
- 20145215《网络对抗》Exp5 MSF基础应用
- Lowest Common Ancestor of a Binary Search Tree(Java 递归与非递归)
- 每天CSS学习之border-radius
热门文章
- springboot的war和jar包
- javaScript设计模式之面向对象编程(object-oriented programming,OOP)(二)
- 三分钟学会.NET微服务之Polly
- springboot~openfeign从JSON文件读取数据
- Redis~Linux环境下的部署
- vue的混合mixins学习
- 4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」
- 多线程协作wait、notify、notifyAll方法简介理解使用 多线程中篇(十四)
- 创建简单的npm脚手架
- C# 曲线上的点(二) 获取距离最近的点