转载:http://blog.csdn.net/debugingstudy/article/details/12716327
比较Java原生的 3种Map的效率。
1. TreeMap
2. HashMap
3. ConcurrentSkipListMap
模拟150W以内海量数据的插入和查找,通过增加和查找两方面的性能测试,结果如下:
Map类型
插入
查找(在100W数据量中)
10W
50W
100W
150W
0-1W
0-25W
0-50W
Concurrent
SkipListMap
62 ms
227 ms
433 ms
689ms
7 ms
80 ms
119 ms
HashMap
18 ms
93 ms
217 ms
303ms
2 ms
13 ms
45 ms
TreeMap
33 ms
228 ms
429 ms
584 ms
4ms
34 ms
61 ms
图1- 1常数和logn函数效率对比示例图(横轴-n数据量,纵轴-f(n)时间)
TreeMap基于红黑树(一种自平衡二叉查找树)实现的,时间复杂度平均能达到O(log n)。
HashMap是基于散列表实现的,时间复杂度平均能达到O(1)。
<