java - 如果您尝试在完整数组中排队,循环数组是否会覆盖当前数字?

标签 java arrays

如果您尝试将数字排入已填充的索引,循环数组是否会覆盖?

例如,假设我有一个包含 8 个整数的循环数组,只有 5 个索引存储了数字。 2是正面,6是背面。如果我将 4 个数字排入队列,当它填满索引 1 时,就只插入了 3 个数字,我还剩下 1 个数字要插入,但没有空间,因为索引 2 已经填满了。我排队的最后一个数字是否会覆盖索引 2,还是该数字不相关并且后面保留在索引 1,前面保留在索引 2?

希望这是有道理的,我的直觉告诉我,如果我有另一个号码要排队,它不会覆盖当前的号码,但我需要保证。

最佳答案

实际的答案是这取决于实现。您可以构建自己的循环数组来检查长度并在满时拒绝插入(通过抛出异常或返回错误状态代码),并且您可以构建一个可以轻松覆盖的循环数组。您甚至可以构建一个在尝试插入完整队列时阻塞当前线程的线程,仅当另一个线程删除元素时才解除阻塞。

这里没有真正的“标准”,但如果您使用的是预先存在的库,请检查其文档。

例如,Java 编程语言的标准库中没有循环数组。同样,您可以自由地以任何一种方式编写。 java.util.Queue 接口(interface)的各种实现可能在底层有循环数组,但您不会看到它们这样暴露。

关于java - 如果您尝试在完整数组中排队,循环数组是否会覆盖当前数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898224/

相关文章:

java - 适合新手的并发编程

java - Espresso 嵌套回收器 View UI 测试

arrays - 在 bash 中使用 IFS 单词分隔符将字符串按 'read' 拆分为数组如何生成额外的空格元素?

ios - 如何用来自 firebase 的数据(字符串)填充数组

c++ - 将 std::array 移动到另一个 std::array

java - 基于命令行参数的多个 Spring boot CommandLineRunner

java - 创建具有不同参数长度的类

java - 嵌套异常是 org.hibernate.exception.GenericJDBCException : could not execute statement

arrays - MongoDB:使用索引更新数组中的子文档

java - 我是否必须为调用方法的计数器创建整数?