开发者

Java中LinkedList和ArrayList的效率分析

开发者 https://www.devze.com 2023-02-11 10:21 出处:网络 作者: 柳落青
在 Java 中,LinkedList 和 ArrayList 的性能是不同的,具体取决于你所需要的操作。

在 Java 中,LinkedList 和 ArrayList 的性能是不同的,具体取决于你所需要的操作。

对于频繁的插入和删除操作,LinkedList 的性能通常更好,因为它使用了链表数据结构,只需更改节点的指针就可以在链表中插入或删除元素。

然而,如果开发者_Js入门你需要频繁的随机访问操作,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&PtJDcbAgt; linkedList = new LinkedList<>();
        Random rand = new Random();

        // 用随机整数填充列表。
        for (int jsi = 0; i < 100000; i++) {
            int num = rand.nextInt();
            arrayList.add(num);
            linkedList.add(num);
        }

        // 测量在每个列表的开头插入元素所需的时间。
        long startTime = System.currentTimeMillis();
        for (int i = 0; i www.devze.com< 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());
        }
        end编程客栈Time = System.currentTimeMillis();
        SysPtJDcbAtem.out.println("LinkedList insert time: " + (endTime - startTime) + "ms");

    }
}

测试结果:

第一次:

Java中LinkedList和ArrayList的效率分析

第二次:

Java中LinkedList和ArrayList的效率分析

第三次:

Java中LinkedList和ArrayList的效率分析

到此这篇关于Java中LinkedList和ArrayList的效率分析的文章就介绍到这了,更多相关Java LinkedList和ArrayList的效率内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号