Java中LinkedList和ArrayList的效率分析
柳落青 人气:0在 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"); } }
测试结果:
第一次:
第二次:
第三次:
加载全部内容