欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中LinkedList和ArrayList的效率分析

 更新時間:2023年02月10日 09:46:46   作者:柳落青  
本文主要介紹了Java中LinkedList和ArrayList的效率分析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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

對于頻繁的插入和刪除操作,LinkedList 的性能通常更好,因為它使用了鏈表數(shù)據(jù)結(jié)構(gòu),只需更改節(jié)點的指針就可以在鏈表中插入或刪除元素。

然而,如果你需要頻繁的隨機訪問操作,ArrayList 的性能更快,因為它使用了數(shù)組數(shù)據(jù)結(jié)構(gòu),可以通過索引訪問任何元素。

下面是一個代碼案例,展示了在 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();

        // 用隨機整數(shù)填充列表。
        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");

    }
}

測試結(jié)果:

第一次:

第二次:

第三次:

到此這篇關(guān)于Java中LinkedList和ArrayList的效率分析的文章就介紹到這了,更多相關(guān)Java LinkedList和ArrayList的效率內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JAVA獲取文件絕對路徑的方法

    JAVA獲取文件絕對路徑的方法

    這篇文章主要介紹了JAVA獲取文件絕對路徑的方法,涉及針對文件路徑的操作技巧,需要的朋友可以參考下
    2015-02-02
  • Jackson序列化丟失泛型的解決

    Jackson序列化丟失泛型的解決

    這篇文章主要介紹了Jackson序列化丟失泛型的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java模擬實現(xiàn)ATM機

    Java模擬實現(xiàn)ATM機

    這篇文章主要為大家詳細介紹了Java模擬實現(xiàn)ATM機,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • java如何讀取properties文件將參數(shù)值配置到靜態(tài)變量

    java如何讀取properties文件將參數(shù)值配置到靜態(tài)變量

    這篇文章主要介紹了java如何讀取properties文件將參數(shù)值配置到靜態(tài)變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • java開發(fā)命名規(guī)范總結(jié)

    java開發(fā)命名規(guī)范總結(jié)

    包名的書寫規(guī)范 (Package)推薦使用公司或機構(gòu)的頂級域名為包名的前綴,目的是保證各公司/機構(gòu)內(nèi)所使用的包名的唯一性。包名全部為小寫字母,且具有實際的區(qū)分意義
    2013-10-10
  • 使用Java反射獲取方法的全路徑名稱的步驟

    使用Java反射獲取方法的全路徑名稱的步驟

    Java反射是一個強大的特性,它允許程序在運行時查詢和修改類的行為,反射可以用于實現(xiàn)很多高級功能,比如動態(tài)代理、依賴注入等,本文將介紹如何使用Java反射來實現(xiàn)這一功能,需要的朋友可以參考下
    2024-07-07
  • idea中java及java web項目的常見問題及解決

    idea中java及java web項目的常見問題及解決

    在IDEA中處理亂碼問題主要涉及四個方面:文件編碼設(shè)置為UTF-8、編輯器默認編碼調(diào)整、Tomcat運行配置編碼設(shè)置以及解決cmd中的亂碼,此外,詳細介紹了在IDEA中創(chuàng)建Web項目的步驟,包括新建Java工程、添加Web框架支持、添加Tomcat依賴庫
    2024-09-09
  • SpringCloud輪詢拉取注冊表與服務(wù)發(fā)現(xiàn)流程詳解

    SpringCloud輪詢拉取注冊表與服務(wù)發(fā)現(xiàn)流程詳解

    這篇文章主要介紹了SpringCloud輪詢拉取注冊表與服務(wù)發(fā)現(xiàn),現(xiàn)在很多創(chuàng)業(yè)公司都開始往springcloud靠了,可能是由于文檔和組件比較豐富的原因吧,畢竟是一款目前來說比較完善的微服務(wù)架構(gòu)
    2022-11-11
  • FP-Growth算法的Java實現(xiàn)+具體實現(xiàn)思路+代碼

    FP-Growth算法的Java實現(xiàn)+具體實現(xiàn)思路+代碼

    FP-Growth算法比Apriori算法快很多(但是卻比不上時間,how time slipped away)。在網(wǎng)上搜索后發(fā)現(xiàn)Java實現(xiàn)的FP-Growth算法很少,且大多數(shù)不太能理解):太菜。所以就自己實現(xiàn)了一下。這篇文章重點介紹一下我的Java實現(xiàn)
    2021-06-06
  • java中匿名內(nèi)部類詳解

    java中匿名內(nèi)部類詳解

    這篇文章主要對java中的匿名內(nèi)部類的詳細總結(jié),需要的朋友可以參考下
    2017-04-04

最新評論