gpt4 book ai didi

java - 为什么 ArrayList RandomAccess 而 ArrayDeque 不是?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:01:53 24 4
gpt4 key购买 nike

嗯,我们知道 RandomAccess是一个标记接口(interface),文档说:

Marker interface used by List implementations to indicate that they support fast (generally constant time) random access. The primary purpose of this interface is to allow generic algorithms to alter their behaviour to provide good performance when applied to either random or sequential access lists.

因此,对我来说,ArrayList 实现 RandomAccess 接口(interface)是完全合理的,因为内部元素存储在数组中,可以随机访问。但是,如果您将看到 ArrayDeque 的内部实现它也将元素存储在一个数组中,但它没有实现 RandomAccess,它是有意为之还是出于某种明确的原因我不知道

最佳答案

RandomAccessList 实现用来表示它们支持快速随机访问。

ArrayDeque 不是 List 并且没有任何随机访问方法(没有基于索引的 addgetremoveset 方法),因此将其设置为 RandomAccess 是没有意义的。

底层结构可能是随机访问,但类不允许随机访问。

关于java - 为什么 ArrayList RandomAccess 而 ArrayDeque 不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48450845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com