相关疑难解决方法(0)

何时在Java中使用LinkedList而不是ArrayList?

我一直只是一个人使用:

List<String> names = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

我使用接口作为可移植性的类型名称,因此当我问这些问题时,我可以重新编写代码.

何时应该LinkedList使用,ArrayList反之亦然?

java collections linked-list arraylist

2974
推荐指数
27
解决办法
102万
查看次数

可以存储在HashMap中的键(对象)数量的理论限制?

是否存在可以存储在HashMap中的键条目数的理论限制,还是纯粹依赖于可用的堆内存?

另外,哪种数据结构最好存储大量对象(比如数十万个对象)?

java performance hashmap

36
推荐指数
2
解决办法
3万
查看次数

为什么ArrayList的最大数组大小是Integer.MAX_VALUE - 8?

我正在研究Java 8文档ArrayList.我得到的最大数组大小定义为Integer.MAX_VALUE - 8平均值2 ^ 31 - 8 = 2 147 483 639.然后,我的重点是,为什么8减去或why not less than 8more than 8减去?

/**
 * The maximum size of array to allocate.
 * Some VMs reserve some header words in an array.
 * Attempts to allocate larger arrays may result in
 * OutOfMemoryError: Requested array size exceeds VM limit
 */
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
Run Code Online (Sandbox Code Playgroud)

我得到了一些相关的答案,但没有实现我的目标.

  1. Java数组是否具有最大大小?
  2. 列表最多可以容纳多少数据
  3. 为什么我无法创建大尺寸的数组?

有些人根据文档给出了一些逻辑"Some …

java arrays arraylist

14
推荐指数
2
解决办法
3342
查看次数

ArrayList中的元素数量

我正在构建一个聊天应用程序.目前,我有所有的消息ArrayList,让我思考 - ArrayList设计要保留多少元素?100?1.000?10.000?

java arraylist

6
推荐指数
3
解决办法
432
查看次数

为什么我无法创建大尺寸的数组?

为什么不可能创建一个max int size的数组?

int i = 2147483647;
int[] array = new int[i];
Run Code Online (Sandbox Code Playgroud)

我找到了这个解释:

通过32位整数访问Java数组,最大理论数组大小为2147483647个元素.

但是你可以看到我的代码不起作用.创建一个大小的数组也是不可能的

new int[Integer.MAX_VALUE - 5];
Run Code Online (Sandbox Code Playgroud)

技术细节

  • 64位HotSpot JVM
  • OSX 10.10.4

PS

为什么-5呢?

java jvm jvm-hotspot

6
推荐指数
1
解决办法
2万
查看次数

java中的无界列表

除了链表之外,Java中是否有任何无界限列表?我必须将BLOB对象存储在列表中.我目前正在使用arrayList,但我担心当列表的大小增长时,arraylist可能无法存储(可能达到最大容量).我想过使用链表但看起来效率不高.

java

1
推荐指数
1
解决办法
1206
查看次数