2 java arraylist maxlength long-integer
我似乎找不到Java List的最大长度是long最大值.
这样的List存在吗?
如果是的话,在哪里?
正如@afsantos所说,由于Java数组的限制,ArrayList该类本身仅限于Integer.MAX_VALUE条目.
LinkedList 没有这个限制,但它(但仍然)昂贵:
每个条目都会产生2个引用的内存开销加上对象头的大小...与基于数组的表示的一个引用相比较.
索引是O(N)与O(1)基于阵列的列表进行比较的操作.
以下是Java库的链接,该库使用直接映射内存和/或元素编码支持大量内存中集合:
那里可能还有其他选择.
人们还可以设想使用数组数组而不是单个数组的常规数组列表的"大"变体.但是如果允许插入列表的中间,则实现O(1)查找变得困难/昂贵.(这可能就是为什么我找不到谷歌的例子......)
从List文档:
int size()返回此列表中的元素数.如果此列表包含多个
Integer.MAX_VALUE元素,则返回Integer.MAX_VALUE.
因此,即使使用标准接口的Listhold Long.MAX_VALUE元素的特定实现,您也不会知道List.
我不确定是否存在,但我的赌注是打开的LinkedList,因为它ArrayList是基于数组的,而那些不能超过Integer.MAX_VALUE元素.
| 归档时间: |
|
| 查看次数: |
2603 次 |
| 最近记录: |