gpt4 book ai didi

java - 如何访问索引为long类型的数组元素

转载 作者:行者123 更新时间:2023-12-02 05:32:58 24 4
gpt4 key购买 nike

每当我尝试访问具有长数据类型索引的数组中的元素时,我都无法这样做。

我需要获取在某个索引处呈现的字符以与另一个字符进行比较。

我尝试使用Array类的getChar()并尝试使用索引获取字符。以下是我尝试过的片段。

试验 1

for (long i = 0; i < len; i++) {
c = Array.getChar(newArray, i);
if (c != 'a') {
} else {
ctr++;
}
}

试用2

for (long i = 0; i < len; i++) {
c = newArray[(int) i];
if (c != 'a') {
} else {
ctr++;
}
}

预期 - 我应该获得我正在寻找的索引的字符。

错误 - 可能会损失精度。

最佳答案

Java 中数组的最大大小为 Integer.MAX_VALUE-2(在 Java 8 Open JDK 中):

//不编译

Object oArray[] = new Object[Long.MAX_VALUE];   

//线程“main”中出现异常 java.lang.OutOfMemoryError: 请求的数组大小超出 VM 限制

Object oArray[] = new Object[Integer.MAX_VALUE];  

//线程“main”中出现异常 java.lang.OutOfMemoryError: 请求的数组大小超出 VM 限制

Object oArray[] = new Object[Integer.MAX_VALUE - 1]; 

//没问题

Object oArray[] = new Object[Integer.MAX_VALUE - 2];

那么,长索引类型是不合适的,因为你无法获得最大值 - 2 之后的索引位置。

如果您想创建一个大小大于整数限制的“内存”存储字符,您可以创建一个 Map 实例:

Map<Long, Character> map = new HashMap();

关于java - 如何访问索引为long类型的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56190154/

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