前言

  线性表不仅可以存储重复的元素,而且可以指定元素存储的位置并根据下表访问元素。

  List接口的两个具体实现:数组线性表类ArrayList、链表类LinkedList

ArrayList

  ArrayList使用数组存储元素,这个数组是动态创建的。如果元素个数超过了数组的容量,就会创建一个更大的数组,并将当前数组中的所有元素都复制到新数组中。另外需要注意的是,ArrayList容量可能根据元素的增加而自动增大,但是不能自动减少。可以使用trimToSize()将数组容量减少到线性表大小。

LinkedList

  即是使用一个链表来进行存储元素。因此可以提供从线性表的两端插入和删除元素的方法。

1. 若要提取元素或在线性表的尾部插入或删除元素,不能再其他位置插入或者删除元素,那么ArrayList效率较高。

2. 但是如若需要在线性表的任意位置插入或者删除元素,LinkedList则为最佳。

3. 如果不需要在线性表中插入删除元素,只是访问元素的话,数组则是效率最高的数据结构。

最新文章

  1. WebGL入门教程(四)-webgl颜色
  2. Vue.js的计算属性
  3. your local repository contains non-ascii
  4. C#程序以管理员身份运行
  5. axis 理解
  6. Location of several networks in brain
  7. C#核心基础--类(2)
  8. 标准库 - unicode/utf8/utf8.go 解读
  9. 再谈php乱码问题
  10. Web前端优化需要注意的点
  11. SolrCloud(一)搭建Zookeeper
  12. JVM性能调优,GC
  13. iOS多线程与网络开发之发送接收server信息
  14. matplotlib库的简单应用
  15. AngularJS学习之旅—AngularJS Http(九)
  16. https://www.cnblogs.com/yudanqu/p/9467803.html
  17. [Python设计模式] 第24章 加薪审批——职责链模式
  18. PTA 1067 Sort with Swap(0, i) (25 分)(思维)
  19. tmux的使用
  20. listview 选择后高亮显示

热门文章

  1. Linux(3)用户和权限管理
  2. 谈谈渲染,玩玩nginx——前后端分离,转发请求到Tomcat的尝试
  3. swift3.0 屏幕截图并且保存到本地相册
  4. MyBatis String类型传递参数注意事项
  5. Sublime Text3快捷键
  6. python学习===打印时间
  7. 【NO.1】Jmeter-安装JDK- 配置Jmeter运行的环境 - 是使用Jmeter的前提
  8. 阅读:DBA们不得不知的数据库硬件RAID常识
  9. MSCI 成份股 清单
  10. 给Lisp程序员的Python简介