我有一个非常大胆的想法,就是我想使用 HashMap 来代替数据库存储聊天应用程序的数据。
因此,当用户发送聊天消息时,该特定用户的聊天消息将使用 storeMsg() 存储到 HashMap 中。
每个用户都有一个单独的聊天室。每 5 秒钟,该特定用户的聊天室将发送 getMsg() 方法来检索该聊天室内的最新消息。检索到消息后,它将移除与该特定用户的聊天室相关的所有消息,以避免负担过重。
因此,只有存在于该聊天室中的用户可以看到消息,消息可以逐一追加。最近进入该聊天室的新用户将无法看到以前的消息。这类似于点对点聊天。
每个用户都有一个唯一的字符串用户名,例如 "tomhan12"、"Mary2"、"123cat" 等。
所以,我的问题是,如果hMap具有字符串键并且hMap具有数百万个条目,那么hMap.get(str)的速度会受到影响吗?
我们可以将String userName转换为唯一的整数,然后“hMap.put(thatUniqueIntegerNumber,message)”以提高性能吗?还是HashMap已经为我们完成了这项工作,因此我们不需要这样做?
因此,当用户发送聊天消息时,该特定用户的聊天消息将使用 storeMsg() 存储到 HashMap 中。
每个用户都有一个单独的聊天室。每 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);
}
所以,我的问题是,如果hMap具有字符串键并且hMap具有数百万个条目,那么hMap.get(str)的速度会受到影响吗?
我们可以将String userName转换为唯一的整数,然后“hMap.put(thatUniqueIntegerNumber,message)”以提高性能吗?还是HashMap已经为我们完成了这项工作,因此我们不需要这样做?