[英]Why is ArrayList RandomAccess but ArrayDeque not?
好吧,我們知道RandomAccess
是一個標記接口,文檔說:
List實現使用的標記接口,表示它們支持快速(通常是恆定時間)隨機訪問。 此接口的主要目的是允許通用算法更改其行為,以便在應用於隨機或順序訪問列表時提供良好的性能。
因此,對我來說, ArrayList
實現RandomAccess
接口是完全RandomAccess
因為內部元素存儲在一個可以隨機訪問的數組中。 但是,如果您將看到ArrayDeque
的內部實現,它也將元素存儲在一個數組中,但它沒有實現RandomAccess
,它是否有意或者它是由一些我不知道的明確原因完成的 ?
List
實現使用RandomAccess
來指示它們支持快速隨機訪問。
ArrayDeque
不是List
,也沒有任何隨機訪問方法(沒有基於索引的add
, get
, remove
或set
方法),所以將它作為RandomAccess
是沒有意義的。
底層結構可能是隨機訪問,但該類不允許隨機訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.