【发布时间】:2015-10-27 02:22:31
【问题描述】:
我有几个与存储 HashMap 相关的场景,我不知道如何完成。
案例1:因为有存储对象的桶,在保存时会考虑hashcode。现在说,有 5 个存储桶,我想自己控制保存哪个存储桶。有没有办法实现它?比如说,通过内部机制,它将被保存到存储桶 4,但我想将该特定对象保存到存储桶 1。
案例 2:同样,如果我看到 5 个存储桶中的 1 个存储桶的负载比其他存储桶多得多,我想通过将其移动到不同的存储桶来完成负载平衡工作。怎么实现?
【问题讨论】:
-
实现的目的是让您不必担心这些细节。
-
确实如此。想知道,有什么方法可以控制我们自己。有办法,我没找到
-
@sdgfsdh 你应该这样回答
-
不,没有办法。内部存储是私有的。如果你想进入那个兔子洞,你可以编写自己的 HashMap 实现。
-
如果您有理由相信一个或多个存储桶的条目过多,您可以做的一件事是将所有内容复制到具有更大容量的新
HashMap,但没有什么可以弥补对于一个可怜的hashCode。
标签: java memory memory-management collections