表-ArrayList的实现
来源:互联网 发布:js canvas clip 编辑:程序博客网 时间:2024/06/05 16:44
- ArrayList 是长度可变的数组,并实现了迭代器。
- 可以存储不同类型的数据(因为在存储值类型的时候依然采用未装箱的模式,即只存储引用地址。比如存储int 8,会封装为integer,导致性能下降),数组不可以。
- 虽然可以存储不同的数据类型,但是可以通过泛型来规范。使用泛型也可以抵消装箱的性能消耗
- ArrayList的默认顺序就是插入顺序,可以使用Collections.sort来重新排序。一种是数组内的对象实现Comparable接口,一种是实现java.util.Comparator作为sort参数
- sort 在jdk6中是合并排序,在jd7中是timsort
- 增:只在末尾插入的话,O(1),如果是中间插入的话,O(n)
- 删:通过下标删除的话,O(n), 通过值删除的话 ,O(n^2)
- 改:O(1)
- 查:因为ArrayLis的实现就是一个一维数组,所以可以快速通过下标读取数据,O(1),但是如果是遍历查找的话,为O(n)
- 迭代器:remove的时候会还是会O(n) ,这是数组本身的限制。
如果使用嵌套类的话,编译器其实无法知道这个迭代器到底是谁的。但是内部类从属于对象,所以没有语义问题。
从迭代器设计模式来考虑的话,从属于对象,对外部类封闭也是极好的
ps:泛型的好处
- 类型安全(Type Safety):使用泛型定义的类型,在使用时仅能使用指定的类型或类型的衍生类型。
- 性能(Performance):泛型移除了运行时类型检测,消除了装箱和拆箱的开销。
- 可重用(Reusability):泛型打破了数据结构与存储数据类型之间的紧耦合。这提高了数据结构的可重用性
0 0
- 表-ArrayList的实现
- 数组线性表ArrayList的内部实现
- ArrayList类的实现
- ArrayList的实现原理
- ArrayList的实现
- ArrayList的实现原理
- ArrayList的实现原理
- ArrayList的实现
- ArrayList的实现原理
- ArrayList的实现原理
- ArrayList的实现原理
- ArrayList的实现原理
- 对 arraylist的实现
- 笔记-ArrayList的实现
- java ArrayList 的实现
- ArrayList 的实现原理
- arraylist的实现
- ArrayList的实现
- 【指针专场】这次一定啃透你哼
- 输入三个整数 x,y,z ,请把这三个数由小到大输出。
- 基于CentOS7开发之路 --- 第三章 :CentOS 7 部署 tomcat 服务
- lnmp、lamp、lnmpa一键安装包使用
- [LeetCode] Plus One 简要分析
- 表-ArrayList的实现
- 层级式导航返回到特定activity
- 求最大公因数的若干方法
- 菲波那切数列:
- 【iOS开发系列】escape编码
- Hibernate与MyBatis的对比总结
- android_activity二种启动界面
- C语言,程序设计
- 打印出所有的“水仙花数”