如果我们需要在其中存储 100K Entry <String, Object>,那么在创建 HashMap 时应该使用什么 loadFactor 和初始大小?

What loadFactor and initial size should be used while creating a HashMap if we need to store 100K Entry in it <String, Object>?

我正在使用 InsertedOrderHashMap 存储 5K 到 120K 的条目。我正在使用 HashMap 的默认构造函数,它具有默认大小 16 和加载因子 (0.75)。

我的问题是,我们如何优化它?我需要针对 CPU 使用情况和内存使用情况优化我的用例。我们应该增加负载因子以降低 CPU 利用率还是其他方式?

感谢您的帮助!

此致, 索拉夫

增加加载因子,增加 HashMap 调整大小的点。一旦达到稳定大小,这会增加 CPU,但会节省一些内存。

HashMap 的大小始终是 2 的幂,因此您有两个选择。

  • 要么增加 CPU 以节省一些内存并使用 128 * 1024 容量和接近 1 的负载系数,要么
  • 您设置容量 256 * 1024 并保留默认负载系数。