关于HASHMAP 和while循环的查询效率问题

javaors 2011-08-01 08:41:59
例如:
我想查询某个值为a的对象

第一种方式:将集合存在hashmap map里面
Object o = map.get(a);


第二种方式: 是将结合存到Iterator iter里面
while(iter.hasNext()){
b = iter.next()
if(a == b){
Object o = b;
break;
}
}

请问这俩的执行效率哪个高,他们的算法的时间复杂度分别是多少。
hashMap的时间复杂度是O(1)
while是多少? 我怎么觉得也是1呢

请高手指点。

...全文
316 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
veval 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hailinger14 的回复:]

第一种速度最快

第二种方法是循将动态数组一个一个的判断
假如有100个对象在数组当中,你要查询的对象在第99个位置上,那么你需要判断99次

同样的情况,用第一种方法,只需判断1次

-------------------------------
HashMap是哈希表,就是将key通过哈希公式进行计算,然后将对象放置到计算结果的内存当中,取的时候在在将key进行哈希计算,按照……
[/Quote]
说的很好,顶!
hailinger14 2011-09-15
  • 打赏
  • 举报
回复
第一种速度最快

第二种方法是循将动态数组一个一个的判断
假如有100个对象在数组当中,你要查询的对象在第99个位置上,那么你需要判断99次

同样的情况,用第一种方法,只需判断1次

-------------------------------
HashMap是哈希表,就是将key通过哈希公式进行计算,然后将对象放置到计算结果的内存当中,取的时候在在将key进行哈希计算,按照结果去内存中获取对象(如果重复,就向后推一个内存快)
s00000000001 2011-09-14
  • 打赏
  • 举报
回复
hash
1,hash Ο(1)
2,for Ο(n)
superddw6 2011-09-14
  • 打赏
  • 举报
回复
while 里面不就是跟一个for差不多的么
topzergling 2011-09-14
  • 打赏
  • 举报
回复
个人感觉基本hashmap就是一次查询
而迭代查询次数则是>=1&&<=list.size()的
javaors 2011-09-14
  • 打赏
  • 举报
回复
顶起。
shawn.bug 2011-08-01
  • 打赏
  • 举报
回复
效率的话肯定是hashmap要高了
既然你知道时间复杂度,其实hashmap就是数据结构中的哈希表,index去检索哈什表对应的对象。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧