簡體   English   中英

為什么ArrayList RandomAccess而不是ArrayDeque?

[英]Why is ArrayList RandomAccess but ArrayDeque not?

好吧,我們知道RandomAccess是一個標記接口,文檔說:

List實現使用的標記接口,表示它們支持快速(通常是恆定時間)隨機訪問。 此接口的主要目的是允許通用算法更改其行為,以便在應用於隨機或順序訪問列表時提供良好的性能。

因此,對我來說, ArrayList實現RandomAccess接口是完全RandomAccess因為內部元素存儲在一個可以隨機訪問的數組中。 但是,如果您將看到ArrayDeque的內部實現,它也將元素存儲在一個數組中,但它沒有實現RandomAccess ,它是否有意或者它是由一些我不知道的明確原因完成

List實現使用RandomAccess來指示它們支持快速隨機訪問。

ArrayDeque不是List ,也沒有任何隨機訪問方法(沒有基於索引的addgetremoveset方法),所以將它作為RandomAccess是沒有意義的。

底層結構可能是隨機訪問,但該類不允許隨機訪問。

暫無
暫無

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

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