在Java中向HashMap添加字符串、字符串项的时间复杂度是多少?
如果我们有一个HashMap<String,String> H
,我们使用代码H.put("Hello","World")
。
时间复杂度是否与在HashMap中使用整型键值对的情况相同?我觉得字符串的性能应该更差,因为对字符串进行散列将是一个O(字符串长度)操作
你可以在下面搜索框中键入要查询的问题!
如果我们有一个HashMap<String,String> H
,我们使用代码H.put("Hello","World")
。
时间复杂度是否与在HashMap中使用整型键值对的情况相同?我觉得字符串的性能应该更差,因为对字符串进行散列将是一个O(字符串长度)操作
# 1 楼答案
是的,它的性能会更差,因为对字符串进行哈希运算确实比对整数进行哈希运算慢
事实上,Java对字符串的
hashCode()
使用了一个特定的公式,您可以看到here,它确实会检查字符串的所有字符,正如您所期望的那样在我的Eclipse中
hashCode()
的代码是:但你为什么要比较这两件事呢?比较两种算法的复杂度没有多大意义,这两种算法做的事情不同