浏览 9650 次
锁定老帖子 主题:hashmap和treemap性能比较
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2012-04-07
hashmap的测试代码如下: List<Integer> keys = new ArrayList<Integer>(S_Len); HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); { Random random = new Random(); for(int i=0;i<S_Len;i++){ int key = random.nextInt(); keys.add(key); } } { Date date = new Date(); for(Integer key:keys){ map.put(key, key); } System.out.println("put time=" + (new Date().getTime()-date.getTime())); } { Date date = new Date(); for(Integer key:keys){ map.get(key); } System.out.println("get time=" + (new Date().getTime()-date.getTime())); } treemap的代码很类似,只有第二行HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();变成了TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();测试出来的结果应该是hashmap完胜treemap。 hashmap的结果 treemap的结果 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-04-08
很正常,理论上红黑树的时间复杂度为O(logN),散列的时间复杂度为O(1)
|
|
返回顶楼 | |
发表时间:2012-04-08
多线程下的性能测试更有说服力,楼上说的时间复杂度正解
|
|
返回顶楼 | |
发表时间:2012-04-08
kfyfly 写道 多线程下的性能测试更有说服力,楼上说的时间复杂度正解 散列表和红黑树这2个就不是一路的,根本没可比性。。。又都是非线程安全的就更加没可比性了 |
|
返回顶楼 | |
发表时间:2012-04-09
543089122 写道 kfyfly 写道 多线程下的性能测试更有说服力,楼上说的时间复杂度正解 散列表和红黑树这2个就不是一路的,根本没可比性。。。又都是非线程安全的就更加没可比性了 所 言 极 是 |
|
返回顶楼 | |
发表时间:2012-04-09
有时候是根据功能来选择使用哪个集合的,不只是单看性能的
|
|
返回顶楼 | |
发表时间:2012-04-09
treeMap 可以排序。HashMap不可以排序。
|
|
返回顶楼 | |
发表时间:2012-04-09
freish 写道 543089122 写道 kfyfly 写道 多线程下的性能测试更有说服力,楼上说的时间复杂度正解
散列表和红黑树这2个就不是一路的,根本没可比性。。。又都是非线程安全的就更加没可比性了 所 言 极 是 对,从理论的角度就能看出差距了,根本就没有比的必要。 |
|
返回顶楼 | |
发表时间:2012-04-09
正确,想想也知道。好比拿100件衣服乱发给100人跟,按号码发给100人一样
|
|
返回顶楼 | |
发表时间:2012-04-09
这个。。比较性能干啥,比较下功能还可以
|
|
返回顶楼 | |