《Java程序性能优化》学习笔记之ArrayList和LinkedList
2015-07-28 21:22
471 查看
1.ArrayList底层是数组实现,是一块连续的内存空间,查询速度,删除添加慢;LinkedList是双向链表,头结点中不存放数据,实现栈和队列的操作方法,因此也可以作为栈、队列和双端队列来使用,查询慢,删除添加速度
2.ArrayList初始化大小为10,添加元素时要判断是否需要扩容,需要则扩大到1.5倍+1。添加和删除元素时,需要进行数组的复制(System.arraycopy),慢
3.LinkedList添加元素都要new Entry
4.在尾端添加元素,ArrayList相对LinkedList会快一点点,且无需新建Entry
5.遍历时 ForEach<迭代器<for,(ForEach被编译器优化成迭代器)
2.ArrayList初始化大小为10,添加元素时要判断是否需要扩容,需要则扩大到1.5倍+1。添加和删除元素时,需要进行数组的复制(System.arraycopy),慢
3.LinkedList添加元素都要new Entry
4.在尾端添加元素,ArrayList相对LinkedList会快一点点,且无需新建Entry
5.遍历时 ForEach<迭代器<for,(ForEach被编译器优化成迭代器)
相关文章推荐
- 【Java】(1)Base64加密技术
- struts2的验证
- 3. Java面向对象之泛型-指定多个泛型
- 3. Java面向对象之泛型-指定多个泛型
- jdk配置
- Java替换字符或十进制数的字符串
- Eclipse 一直提示 loading descriptor for 的解决方法
- Spring结合Hessian协议远程调用方法名不能重载
- spring 和 mybatis 的整合
- 记录JAVA学习的第一天
- JAVA数据类型
- 2. Java面向对象之泛型-构造方法中使用
- 2. Java面向对象之泛型-构造方法中使用
- Java_Web三大框架之Hibernate配置文件(二)
- java学习第一篇
- hessian与spring的结合
- struts2+ajax+json 实例
- 【Struts2框架】第六节拦截器-拦截器的几个小实例
- 7.27JAVA基础
- 2015.7.27 java第一天