【发布时间】:2022-11-23 16:11:21
【问题描述】:
我从这里读到这个`Array deques have no capacity restrictions:
但是在源码中我发现它使用的是数组(最大容量为Integer.MAX_VALUE),长大后会抛出异常:
if ((minCapacity = oldCapacity + needed) - MAX_ARRAY_SIZE > 0) {
if (minCapacity < 0)
throw new IllegalStateException("Sorry, deque too big");
return Integer.MAX_VALUE;
}
我很困惑,ArrayDeque 真的有无限大小吗?
【问题讨论】:
-
它有一个理论上无限大小,但实际限制是数组的限制,最多只能有
Integer.MAX_VALUE个元素。对于大多数应用程序来说,这已经足够了——您是否遇到过任何问题?
标签: java arraydeque