簡體   English   中英

當使用 ArrayList 的 Stack 或 Queue 實現比在 Java 中實現的 LinkedList 提供更好、更快的性能時,是否有任何情況?

[英]Is there any case when a Stack or a Queue implementation with ArrayList gives better, faster performance then a LinkedList implemented in Java?

在這個問題中,我閱讀了以下內容:

如果您執行的操作相對較少,即總共少於 1000 個左右的入隊/出隊,那么數組會更快,因為它在內存中是連續的。

我的問題是:在 Java 中緩存 ArrayList 是如何工作的? 在某些情況下,ArrayList 實現的 Queue 或 Stack 比 Java 中實現的 LinkedList 性能更好嗎?

如果 ArrayList 實現的 Queue 或 Stack 比 Java 中實現的 LinkedList 性能更好?

當隊列幾乎總是空的或只有 1 個元素時,ArrayList 速度更快並且產生的垃圾更少(即沒有)

如果你有一個快速的消費者,它幾乎總是消費生產者生產的東西。 這意味着隊列中通常有 0 或 1 個元素。 在這些條件下 ArrayList 更快,因為它不會創建任何對象或產生垃圾。

順便說一句,ArrayDeque 是更好的選擇,因為即使元素超過 1 個,它也能很好地執行。

在 Java 中緩存 ArrayList 是如何工作的?

CPU 緩存訪問 ArrayList 的方式沒有什么特別之處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM