为了账号安全,请及时绑定邮箱和手机立即绑定

Java Hash Map containsValue的时间复杂度是多少呢

Java Hash Map containsValue的时间复杂度是多少呢

森林海 2018-07-14 11:14:10
这是它的源码: public boolean containsValue(Object value) {         Node<K,V>[] tab; V v;         if ((tab = table) != null && size > 0) {             for (int i = 0; i < tab.length; ++i) {                 for (Node<K,V> e = tab[i]; e != null; e = e.next) {                     if ((v = e.value) == value ||                         (value != null && value.equals(v)))                         return true;                 }             }         }         return false;     }是在遍历数组里先得到头节点,然后再遍历链表得到value,,时间复杂度是O(n)还是O(n²)
查看完整描述

1 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

介于O(n)和O(n²)之间,更接近于O(n),取决于key的hash重合度,如果所有的value都分布于单独的key,则复杂度就是O(n)。


查看完整回答
反对 回复 2018-08-11
  • 1 回答
  • 0 关注
  • 1230 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号