我正在测试Java(SE7)如何int
通过以下代码处理超过其最大值的问题:
int index = 2147483647;//the maximum value of int
long size = 2147483648L; //More than the maximum value of int by 1
int safeCounter=0; //To prevent the infinite loop
while (index<size)
{
System.out.println("Index now is : "+index);//show the int value
index++; //increment the int value
safeCounter++; //increment the number of desired loops
if (safeCounter==3){
break;//to break the loop after 3 turns
}
}
我得到的是:
现在的索引是:2147483647 现在的索引是:-2147483648 现在的索引是:-2147483647
因此,在对此感到困惑之后,(如果我不使用safeCounter
它,它将永远在最大值和最小值之间运行int
——并且不会抛出异常)我想知道如何ArrayList
处理元素数量超过最大值int
(假设堆空间不是问题)?如果ArrayList
不能处理,还有其他数据结构可以吗?
你能解释一下我从int
变量中得到的行为吗?