首页 > 解决方案 > Java缓冲区由long而不是int索引?

问题描述

看起来所有的 java 容器、缓冲区、数组等,都只能用 int 索引。例如,在 C++ 上,我可以通过索引unsidned long

Java中有什么解决方案?我当然可以创建自己的使用大量 int32 可索引缓冲区的类并访问正确的类,但是有更好更简单的方法吗?

标签: java

解决方案


根据 Java 语言规范。

10.4 数组访问

数组必须由 int 值索引;short、byte 或 char 值也可以用作索引值,因为它们经过一元数字提升(第 5.6 节)并成为 int 值。

尝试访问具有长索引值的数组组件会导致编译时错误。

而且从我自己的角度来看,由于Array.length返回 an int,就没有必要超过Integer.MAX_VALUE. 因此不需要通过 long 进行索引。


推荐阅读