当前位置:  开发笔记 > 编程语言 > 正文

hashMap.get("The String key")的速度会受hashMap大小的影响吗?

如何解决《hashMap.get("TheStringkey")的速度会受hashMap大小的影响吗?》经验,为你挑选了1个好方法。

我提出了一个非常大胆的想法.那就是我想用一个HashMap而不是数据库来存储聊天应用程序的数据.

因此,当用户发送聊天消息时,该特定用户的聊天消息将被存储到HashMap使用中storeMsg().

每个用户都有一个单独的聊天室.每隔5秒,该特定用户的聊天室将发送一种getMsg()方法来检索该聊天室内的最新消息.在检索消息之后,它将删除与该特定用户的聊天室相关的所有消息,以便我们可以避免开销.

因此,只有用户存在于聊天室中才能看到消息,消息可以一个一个地添加.最近进入该聊天室的新用户将无法看到之前的消息.这类似于点对点聊天.

每个用户都有一个唯一的字符串用户名,例如"tomhan12","Mary2","123cat"等.

public void storeMsg(String userName, String message){
   hMap.put(userName, message);
}

public String getMsg(String userName){
    return hMap.get(userName);
}

所以,我的问题是,如果hMapKeyS中的StringS&如果hMap有一个像数以百万计的条目,然后将速度的hMap.get(str)影响吗?

我们可以将其String userName转换为唯一的整数然后" hMap.put(thatUniqueIntegerNumber, message)"以获得更高的性能吗?或者HashMap为我们做了这个,所以我们不需要这样做?



1> Eran..:

HashMapget具有期望的恒定运行时间,这意味着它的运行时间不应该依赖于的大小HashMap.当然,这取决于hashCode你的密钥方法的正确实现,但你的关键是String,所以它应该不是问题.

也就是说,使用大型HashMap(或任何其他大型数据结构)会消耗大量内存,因此您应该注意,您没有遇到内存不足的问题,这会降低您的应用程序速度.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有