ArrayList 的实现原理
2016-07-16 07:58
267 查看
ArrayList 是List接口的可变数组的实现。实现了所有可选列表的操作,并包括null值在内的所有元素。此类还提供了一些方法来操作内部用来存储列表的数组大小。
ArrayList 的是实现:
对于ArrayList而言,他实现List接口、底层使用数组保存所有元素,其操作基本上是对数组的操作。
LinkedList 实现了List接口,但是它执行和插入操作时比ArrayList更加高效,因为它是基于链表,基于链表也决定了它在随机访问方面要比ArrayList逊色一些。
除此之外,LinkedLis还提供一些可以使其作为栈、队列、双端队列的方法,这些方法中彼此之间只是名称的区别,以使得这些名字在等特定的上下文中显得更加合适。、
ArrayList(访问快速,修改慢)的底层使用的是数组存元素,数组的大小说是自增的,(插入元素,由于不知道数组容量,数组要复制到一个新的数组中,)。
LinkedList (改快查慢)的底层是链表,通过节点直接将元素连接起来,每个节点包含前后节点的引用和节点存储的值,
当修改时,插入一个新的元素,只需要修改前后节点的引用关系即可,
但访问是,要遍历节点来定位,所以访问速度慢。
ArrayList 的是实现:
对于ArrayList而言,他实现List接口、底层使用数组保存所有元素,其操作基本上是对数组的操作。
LinkedList 实现了List接口,但是它执行和插入操作时比ArrayList更加高效,因为它是基于链表,基于链表也决定了它在随机访问方面要比ArrayList逊色一些。
除此之外,LinkedLis还提供一些可以使其作为栈、队列、双端队列的方法,这些方法中彼此之间只是名称的区别,以使得这些名字在等特定的上下文中显得更加合适。、
ArrayList(访问快速,修改慢)的底层使用的是数组存元素,数组的大小说是自增的,(插入元素,由于不知道数组容量,数组要复制到一个新的数组中,)。
LinkedList (改快查慢)的底层是链表,通过节点直接将元素连接起来,每个节点包含前后节点的引用和节点存储的值,
当修改时,插入一个新的元素,只需要修改前后节点的引用关系即可,
但访问是,要遍历节点来定位,所以访问速度慢。
相关文章推荐
- July 15th比赛——积木游戏
- 自定义PHP系统异常处理类
- 关于上次抓猫题目100分解法(pascal)
- 从类的继承看socketserver源码
- 单元格删除方法和交换位置方法
- BZOJ 2115 [Wc2011] Xor
- PHP中exit()与die()的区别
- FMDB的简单应用
- Android中Recyclerview使用5----添加头部:RecyclerViewHeader
- PHP反射(ReflectionClass、ReflectionMethod)在ThinkPHP框架的控制器调度模块中的应用
- 透过统计力学,模拟软物质——EPJE专访2016年玻尔兹曼奖得主Daan Frenkel
- 根据输入的textField首字符排序
- PHP反射ReflectionClass、ReflectionMethod 入门教程
- Android中Recyclerview使用4----选中某一条目
- bzoj 1823 [JSOI2010]满汉全席
- 【教训】 form表单提交时,action url中参数无效
- runLoop机制
- uboot 命令分析(一) — bootm
- 图像和链接 、 表格 、 列表
- 性别显示