java - 如果在 Java 中使用长数据类型,则访问数组元素

标签 java arrays

我正在尝试使用 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];

enter image description here

最佳答案

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/

相关文章:

arrays - 如何在ruby中迭代数组中的特定项目

java - 如何在 2 个 fragment 之间传递 Bitmap[]

c# - 在c#中实现java函数

java - Java 8 默认接口(interface)方法上的 Spring Integration @ServiceActivator

java - 使用pdf渲染器在java中查看整个pdf

java - 如何使用 Micrometer 正确跟踪 Hibernate 指标?

java - 应该计算数组中所有对的代码无法正常工作

java - 移位密码不会移位数字,而是将其更改为大写字母,然后不会将其更改回来。 java

javascript - 我有几个文本值数组,我想选择其中一个数组用作 HTML 数据列表

java - 映射任务中长正则表达式的最佳选择是什么?