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。

最新文章

  1. Android安全相关文章[不定期更新…]
  2. 初识c#
  3. HDU1039-Easier Done Than Said?(字符串处理)
  4. centos7 系统初始化脚本
  5. jsp自定义标签(时间格式化包括Long转时间)
  6. Struts2的输入校验(2)——客户端校验
  7. mssql查询某个值存在某个表里的哪个字段的值里面
  8. python PIL下的各种问题
  9. 【转】android adb命令
  10. C# string LastIndexOf()
  11. css2如何设置全屏背景图片
  12. 利用百度地图api实现定位
  13. Postman-----设置环境变量
  14. yum 安装fuser命令
  15. es6快速入门
  16. IIS7下,显示PHP错误(不显示500错误,而显示详细错误)
  17. python正则表达式模块re:正则表达式常用字符、常用可选标志位、group与groups、match、search、sub、split,findall、compile、特殊字符转义
  18. 20145215《网络对抗》Exp5 MSF基础应用
  19. Lowest Common Ancestor of a Binary Search Tree(Java 递归与非递归)
  20. 每天CSS学习之border-radius

热门文章

  1. springboot的war和jar包
  2. javaScript设计模式之面向对象编程(object-oriented programming,OOP)(二)
  3. 三分钟学会.NET微服务之Polly
  4. springboot~openfeign从JSON文件读取数据
  5. Redis~Linux环境下的部署
  6. vue的混合mixins学习
  7. 4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」
  8. 多线程协作wait、notify、notifyAll方法简介理解使用 多线程中篇(十四)
  9. 创建简单的npm脚手架
  10. C# 曲线上的点(二) 获取距离最近的点