Java中LinkedList和ArrayList的效率分析
在 Java 中,LinkedList 和 ArrayList 的性能是不同的,具體取決于你所需要的操作。
對(duì)于頻繁的插入和刪除操作,LinkedList 的性能通常更好,因?yàn)樗褂昧随湵頂?shù)據(jù)結(jié)構(gòu),只需更改節(jié)點(diǎn)的指針就可以在鏈表中插入或刪除元素。
然而,如果你需要頻繁的隨機(jī)訪問(wèn)操作,ArrayList 的性能更快,因?yàn)樗褂昧藬?shù)組數(shù)據(jù)結(jié)構(gòu),可以通過(guò)索引訪問(wèn)任何元素。
下面是一個(gè)代碼案例,展示了在 Java 中使用 LinkedList 和 ArrayList 進(jìn)行插入和刪除操作的時(shí)間差異。
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(); // 用隨機(jī)整數(shù)填充列表。 for (int i = 0; i < 100000; i++) { int num = rand.nextInt(); arrayList.add(num); linkedList.add(num); } // 測(cè)量在每個(gè)列表的開頭插入元素所需的時(shí)間。 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"); } }
測(cè)試結(jié)果:
第一次:
第二次:
第三次:
到此這篇關(guān)于Java中LinkedList和ArrayList的效率分析的文章就介紹到這了,更多相關(guān)Java LinkedList和ArrayList的效率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java如何讀取properties文件將參數(shù)值配置到靜態(tài)變量
這篇文章主要介紹了java如何讀取properties文件將參數(shù)值配置到靜態(tài)變量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08idea中java及java web項(xiàng)目的常見問(wèn)題及解決
在IDEA中處理亂碼問(wèn)題主要涉及四個(gè)方面:文件編碼設(shè)置為UTF-8、編輯器默認(rèn)編碼調(diào)整、Tomcat運(yùn)行配置編碼設(shè)置以及解決cmd中的亂碼,此外,詳細(xì)介紹了在IDEA中創(chuàng)建Web項(xiàng)目的步驟,包括新建Java工程、添加Web框架支持、添加Tomcat依賴庫(kù)2024-09-09SpringCloud輪詢拉取注冊(cè)表與服務(wù)發(fā)現(xiàn)流程詳解
這篇文章主要介紹了SpringCloud輪詢拉取注冊(cè)表與服務(wù)發(fā)現(xiàn),現(xiàn)在很多創(chuàng)業(yè)公司都開始往springcloud靠了,可能是由于文檔和組件比較豐富的原因吧,畢竟是一款目前來(lái)說(shuō)比較完善的微服務(wù)架構(gòu)2022-11-11FP-Growth算法的Java實(shí)現(xiàn)+具體實(shí)現(xiàn)思路+代碼
FP-Growth算法比Apriori算法快很多(但是卻比不上時(shí)間,how time slipped away)。在網(wǎng)上搜索后發(fā)現(xiàn)Java實(shí)現(xiàn)的FP-Growth算法很少,且大多數(shù)不太能理解):太菜。所以就自己實(shí)現(xiàn)了一下。這篇文章重點(diǎn)介紹一下我的Java實(shí)現(xiàn)2021-06-06