Map与List查找性能比较
来源:互联网 发布:甲骨文java培训骗局 编辑:程序博客网 时间:2024/06/05 04:17
@Test
public void mapTest(){
/*
* 比较顺序查找和散列查找的性能
*/
//创建线性表集合
List<String> list=
new ArrayList<String>();
//创建散列表集合
Map<String, Integer> map=
new HashMap<String, Integer>();
//向集合中同时添加数据
for(int i=0; i<500000; i++){
String key="Tom"+i;
list.add(key);
//将key,value成对的加入到map
map.put(key, i);//Tom0, 0
}
//被查找的 key
String key = "Tom499999";
//线性表中顺序查找:
long t1=System.nanoTime();
int i=list.indexOf(key);
long t2=System.nanoTime();
System.out.println(i+","+(t2-t1)); //499999,11245379
//散列表中的散列查找:
t1=System.nanoTime();
int n = map.get(key);
t2=System.nanoTime();
System.out.println(n+","+(t2-t1)); //499999,15317
}
//散列表性能更高
1,查找
根据key的散列值(hashcode())映射到散列数组的下标再根据key的equals方法逐一比较key,最后找到value。
2,添加/替换:
根据key的散列值(hashCode())映射到散列数组的下标,再根据key的equals方法逐一比较key,最后找到插入(替换)位置,插入(替换)key-value数据。
记住:无论查找还是添加都是先用key的hashCode再使用key的equals方法
注意:使用散列表时候,作为key的对象,必须重写equals和hashCode。
- Map与List查找性能比较
- Map与List性能比较
- Map与List及Vector性能比较
- Map与List和Vector性能比较
- map 与 hash_map 性能比较
- java中Map、List与Set比较
- 比较测试map、unodered_map、unordered_set性能效率,整型数值查找
- C# List<>与Array性能比较
- C# List<>与Array性能比较
- List<T> 与ArrayList 性能比较
- C# List<>与Array性能比较
- Hql List Map 查找
- list set map比较
- Map list set 比较
- 比较Map的性能
- vector,deque,list,map,数组比较与分析
- c++ list, vector, map, set 区别与用法比较
- vector,deque,list,map,数组比较与分析
- 100. Same Tree
- Java虚拟机解析篇之 -- 内存模型
- CNN Net
- 命令提示OJ Problem 566
- 27. Remove Element
- Map与List查找性能比较
- Opencv+Zbar二维码识别(标准条形码/二维码识别)
- 所以为什么要学ps?
- AngularJS开发WebApp的路由配置
- Windows和linux下的查看网络命令
- PowerMock介绍
- Redis常用命令
- 简单的动态链表
- 关于深度学习与计算机视觉 | 硬创公开课