Java中LinkedList和ArrayList的效率分析
作者:柳落青 时间:2023-02-12 06:21:55
在 Java 中,LinkedList 和 ArrayList 的性能是不同的,具体取决于你所需要的操作。
对于频繁的插入和删除操作,LinkedList 的性能通常更好,因为它使用了链表数据结构,只需更改节点的指针就可以在链表中插入或删除元素。
然而,如果你需要频繁的随机访问操作,ArrayList 的性能更快,因为它使用了数组数据结构,可以通过索引访问任何元素。
下面是一个代码案例,展示了在 Java 中使用 LinkedList 和 ArrayList 进行插入和删除操作的时间差异。
package com.example.springbootpf4jservice;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
public class ListPerformanceTest {
public static void main(String[] args) {
List<Integer> arrayList = new ArrayList<>();
List<Integer> linkedList = new LinkedList<>();
Random rand = new Random();
// 用随机整数填充列表。
for (int i = 0; i < 100000; i++) {
int num = rand.nextInt();
arrayList.add(num);
linkedList.add(num);
}
// 测量在每个列表的开头插入元素所需的时间。
long startTime = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
arrayList.add(0, rand.nextInt());
}
long endTime = System.currentTimeMillis();
System.out.println("ArrayList insert time: " + (endTime - startTime) + "ms");
startTime = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
linkedList.add(0, rand.nextInt());
}
endTime = System.currentTimeMillis();
System.out.println("LinkedList insert time: " + (endTime - startTime) + "ms");
}
}
测试结果:
第一次:
第二次:
第三次:
来源:https://blog.csdn.net/S0001100/article/details/128962060
标签:Java,LinkedList,ArrayList
0
投稿
猜你喜欢
C++实现经典24点纸牌益智游戏
2023-04-22 01:05:02
UE4 Unlua 调用异步蓝图节点AIMoveTo函数示例详解
2022-04-12 05:35:41
为什么Java volatile++不是原子性的详解
2022-03-09 23:39:41
Android仿网易客户端顶部导航栏效果
2022-08-20 08:03:00
关于android连续点击出现多个Activity界面的解决方法
2023-03-29 12:20:43
解决RedisTemplate存储至缓存数据出现乱码的情况
2023-04-20 15:30:58
Java毕业设计实战之线上水果超市商城的实现
2021-09-15 19:23:01
完美解决单例设计模式中懒汉式线程安全的问题
2021-12-30 01:54:21
C#异步调用的好处和方法分享
2023-04-08 11:10:56
java8使用filter()取出自己所需数据
2023-04-07 02:30:37
详细了解JAVA NIO之Buffer(缓冲区)
2022-08-18 00:59:28
c# 遍历获取所有文件的示例代码
2022-11-21 20:01:43
C#静态方法的使用
2022-05-19 06:45:09
在Android设备上搭建Web服务器的方法
2023-06-23 23:38:36
c#中task与thread区别及其使用的方法示例
2021-08-06 13:59:10
C#实现调用迅雷下载的方法
2022-03-29 12:42:21
如何解决springboot读取配置文件的中文乱码问题
2022-09-13 22:26:42
java后端+前端使用WebSocket实现消息推送的详细流程
2022-04-24 12:34:53
C# partial关键字说明
2021-12-29 15:29:54
Java中避免空指针异常的方法
2023-05-08 21:00:27