Java中LinkedList和ArrayList的效率分析
在 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");
}
}
测试结果:
第一次:

第二次:

第三次:

到此这篇关于Java中LinkedList和ArrayList的效率分析的文章就介绍到这了,更多相关Java LinkedList和ArrayList的效率内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
@TransactionalEventListener的使用和实现原理分析
这篇文章主要介绍了@TransactionalEventListener的使用和实现原理分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12
Java中for、foreach、stream区别和性能比较详解
for、foreach、stream都可以循环处理数据,如果单纯当循环使用,for、foreach、stream哪个性能更好,这篇文章主要给大家介绍了关于Java中for、foreach、stream区别和性能的相关资料,需要的朋友可以参考下2024-03-03
RestTemplate发送HTTP POST请求使用方法详解
这篇文章主要为大家介绍了RestTemplate发送HTTP POST请求的使用方法详解,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步2022-03-03
SpringBoot 配合 SpringSecurity 实现自动登录功能的代码
这篇文章主要介绍了SpringBoot 配合 SpringSecurity 实现自动登录功能的代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-09-09


最新评论