使用哪种更好的选择:

  • HashMap with initial size : HashMap hm = new HashMap(10);
  • HashMap without initial size : HashMap hm = new HashMap() ?

  • 又为什么呢?
    loadfactor 属性中的 modcountHashMap 又是什么?

    当我在 eclipse 中调试我的代码并查看 HashMap 的值时,它显示了一个名为 loadfactor 的属性,值为 0.75,一个名为 modcount 的属性值为 3。

    我在代码中使用 hashmap 的地方:-

    我正在开发一个通信应用程序,你可以说是一个聊天应用程序。我将所有发送/接收的消息存储在 HashMap 中。现在,由于我无法假设用户将发送/接收多少条消息,因此我声明了一个没有初始容量的哈希图。我写的是
    Map<String, Map<String, List<String>>> usersMessagesMap = new HashMap<String, Map<String,List<String>>>();
    

    如果我以 100 或更高的初始容量使用它会影响代码吗?

    最佳答案

    您是否检查过 HashMap API Javadoc?

  • 容量 是哈希表中的桶数
  • 初始容量 只是哈希表创建时的容量
  • 负载因子是衡量哈希表在其容量自动增加之前允许获得的满度的一种方法

  • 将初始大小设置得太高:



    负载因子对性能的影响:



    嗯,简而言之:根据估计的大小和预期的增长率,您必须选择近似值或相反。

    通常,如果您知道 Map 的初始元素数量,建议在构建时设置它,避免在初始化时过早重新哈希。

    关于java - 哪个是 HashMap 更好的选择?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4932259/

    10-12 00:12
    查看更多