我正在尝试使用 Java 解决竞争性编程问题。在涉及数组使用的问题中,我必须编写程序,使数组可以容纳大量值(超出int的范围),并且每个数组元素也超出<整数范围。 所以我为此使用 long 。但如果我尝试访问说
a[i++] = b[j++];
其中 i & j & a& b 都是 long 类型,我收到以下错误:
error: possible loss of precision
用于索引访问。
如何访问这些元素?我尝试将索引值的 long 类型转换为 int,错误消失了,但这是否也会影响精度?
变量声明如下:
long numTest = in.nextLong();
long [] sizes = new long[numTest];
最佳答案
Java 语言规范规定不能使用长整型作为数组索引:
Arrays must be indexed by int values... An attempt to access an array component with a long index value results in a compile-time error.
因此,您可以预期最大大小将为 Integer.MAX_VALUE,但这取决于您的 JVM,如 here 中所述。
关于java - 如果在 Java 中使用长数据类型,则访问数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30805300/