gpt4 book ai didi

Java:数组如何提供即时查找

转载 作者:行者123 更新时间:2023-12-01 18:29:28 24 4
gpt4 key购买 nike

更具体地说,Java中的Array对象如何允许用户在恒定的时间内访问每个桶?我知道Java在初始化时分配相当于指定大小的内存,但是它的结构如何允许如此快速的查找?我问的原因是因为它是任何其他数据结构中不可用的东西,除了那些使用数据的数组表示形式的数据结构。

另一个(可能很愚蠢)的问题是为什么其他数据结构不能提供对存储数据的如此快速的查找?我想这个问题可以/将会由第一个问题(数组是如何实现的)的答案来回答。

最佳答案

数组只是存储为一个大的连续内存块。

访问元素的问题是:

  • 查找数据的起始位置
  • 验证索引
  • 将索引乘以元素大小,并将结果添加到起始位置
  • 访问该内存位置

请注意,这一切都是在 JVM 中完成的,而不是在字节码中完成的。如果 JVM 级别不存在数组,则无法在纯 Java 中伪造它们。除此之外,数组是 Java 中唯一在同一 JVM 内的实例之间逻辑上大小不同的对象。 (某些 JVM 可能拥有聪明的系统,在某些情况下使用压缩引用,而在其他情况下则不使用,但这是实现细节而不是逻辑差异。)

关于Java:数组如何提供即时查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24929448/

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