Java List性能优化
来源:互联网 发布:尤里的复仇for mac 编辑:程序博客网 时间:2024/06/11 06:02
List接口
list主要有三种实现:ArrayList,Vector和LinkedList,其中ArrayList和Vector使用了数组实现,LinkedList使用了循环双向链表数据结构。
1.插入数据比较
在队尾增加数据,ArrayList相对较快,LinkedList每次都要新增一个Entry对象,较慢。
在队中插入数据,LinkedList较快,ArrayList要复制数组。
2.删除数据比较
ArrayList的实现,将删除位置后面的元素往前移动一位,最有一位元素置为null。
LinkedList要循环找到要删除的数据。如果删除的位置处于List的前半段,从前往后查找,如果删除的位置处于List的后半段,从后往前找。
所以ArrayList删除最后的数据比较快,LinkedList删除两端的数据比较快,删除中间的数据比较慢。
3.遍历LinkedList
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
long start = System.currentTimeMillis();
List<String> list =
new
LinkedList<String>();
for
(int i=0; i< 110000; i++){
list.add(0, String.valueOf(i));
}
long end = System.currentTimeMillis();
System.out.println(end-start);
long start1 = System.currentTimeMillis();
for
(int i=0; i< 11000; i++){
list.get(i);
}
long end1 = System.currentTimeMillis();
System.out.println(
"for循环时间:"
+(end1-start1));
long start3 = System.currentTimeMillis();
for
(String string : list) {
}
long end3 = System.currentTimeMillis();
System.out.println(
"forEach循环时间:"
+(end3-start3));
long start2 = System.currentTimeMillis();
for
(Iterator<String> it = list.iterator(); it.hasNext();){
String a = it.next();
}
long end2 = System.currentTimeMillis();
System.out.println(
"迭代器循环时间:"
+(end2-start2));
1
2
3
4
25
for
循环时间:181
forEach循环时间:4
迭代器循环时间:3
阅读全文
0 0
- Java List性能优化
- java性能优化--List选择及优化
- 【Java程序优化】- 深度剖析 List 性能分析
- java性能优化读书笔记之三《程序优化===集合优化(list)》
- java代码优化---->性能优化
- java内存优化性能优化
- Java性能优化:程序优化
- Java 性能的优化
- Java 性能优化技巧
- Java 性能优化技巧
- java 性能优化
- Java性能的优化
- Java性能优化技巧
- Java性能优化集锦
- Java性能的优化
- java性能优化
- Java性能优化技巧
- java性能优化1
- 微软夏令营编程测验第二题MSFT
- FastFusion安装编译
- 开关电源制作过程总结
- java jdbc之如何获得一个resultset的行数
- 局部静态变量是如何做到只初始化一次的?
- Java List性能优化
- C语言常用内置函数
- AI基础概念学习
- Redis 在linux上安装步骤
- [代码问题解决录]li列表项动态序列
- 如何让EA中建成的数据表在SQL数据库中生成表
- SSH拦截器
- 《剑指offer》把字符串转为整数
- JMS(Java消息服务)入门教程