【发布时间】:2013-01-01 19:13:31
【问题描述】:
我正在通过以下代码测试 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 变量中得到的行为?
【问题讨论】:
标签: java arraylist integer max heap-memory