`
ytrgmj
  • 浏览: 21508 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

hashmap和treemap性能比较

 
阅读更多
周末在家测试了hashmap和treemap的性能,分别产生指定数目的随机数,然后依次放到不同的容器中,记录一下放之前和放之后的时间。然后再根据产生的随机数,在容器中中读一把,记录一下读之前和读之后的时间。
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的结果


  • 大小: 16.1 KB
  • 大小: 17 KB
分享到:
评论

相关推荐

    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)

    比较Java原生的 3种Map的效率。 1. TreeMap 2. HashMap 3. ConcurrentSkipListMap 本测试查找方法使用Map的get方法,循环、离散获取。... SkipListMap的范围查询效率比HashMap和TreeMap效率都要高。

    Java集合框架Map接口.pdf

    Map接口的实现类可以根据其内部数据结构的不同,分为几种类型,例如HashMap、TreeMap和LinkedHashMap等。不同的实现类具有不同的特点和性能特征,应该根据实际需求来选择合适的实现类。 Map接口中常用的方法 1. put...

    Database-Query-Evaluation-Engine-with-Indexes:通过使用预计算步骤增强版本 2 查询评估器,通过收集统计信息、构建索引等来提高系统性能。

    使用索引的查询评估引擎 团队成员 Vivekanandh Vel Rathinam ( )、Amitha Narasimha Murthy ( )、Neeti ... 该库提供磁盘上的 HashMap 和 TreeMap 接口,支持集群(主)和非集群(二级)索引,以及对事务访问(一次一

    集合常见面试题

    ConcurrentHashMap是如何在保证并发安全的同时提高性能? ConcurrentHashMap是如何让多线程同时参与扩容? LinkedBlockingQueue、DelayQueue是如何实现的? CopyOnWriteArrayList是如何保证线程安全的?

    Java中Map的遍历方法及性能测试

    主要介绍了Java中Map的遍历方法及性能测试,本文讲解对HashMap、TreeMap进行对比测试,给出测试代码、测试结果和测试结论,需要的朋友可以参考下

    Java 基础核心总结 +经典算法大全.rar

    HashMap LinkedHashMap TreeMap WeakHashMap Hashtable Collection 集合体系详解 Set 接口 AbstractSet 抽象类SortedSet 接口HashSet LinkedHashSet TreeSet List 接口 AbstractList 和 AbstractSequentialList ...

    Java高并发高性能分布式框架从无到有微服务架构设计.doc

    mapdb是一个内嵌的纯java的数据库,提供了并发的HashMap、TreeMap、Queue,可以基 于堆外或者磁盘来存储数据高并发-应用缓存堆外缓存 即缓存数据存储在堆外内存,可以减少GC暂停时间(堆对象转移到堆外,GC扫描和移动 ...

    Java常见面试题208道.docx

    22.如何决定使用 HashMap 还是 TreeMap? 23.说一下 HashMap 的实现原理? 24.说一下 HashSet 的实现原理? 25.ArrayList 和 LinkedList 的区别是什么? 26.如何实现数组和 List 之间的转换? 27.ArrayList 和 ...

    突破程序员基本功的16课.part2

    3.1.2 HashMap和HashSet 3.1.3 TreeMap和TreeSet 3.2 Map和List 3.2.1 Map的values()方法 3.2.2 Map和List的关系 3.3 ArrayList和LinkedList 3.3.1 Vector和ArrayList的区别 3.3.2 ArrayList和LinkedList...

    Java容器.xmind

    TreeMap 对键进行排序 HashTable 标记: class Properties 标记: class 线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。 Collections 标记: 均以synchronized实现, 性能没用提高 ...

    疯狂JAVA讲义

    7.7 HashSet和HashMap的性能选项 282 7.8 操作集合的工具类:Collections 283 7.8.1 排序操作 283 7.8.2 查找,替换操作 287 7.8.3 同步控制 288 7.8.4 设置不可变集合 288 7.9 烦琐的接口:Enumeration 289 ...

    高级java笔试题-ShiftJava:学到头秃的Java的小笔记

    ArrayList、LinkedList、ArrayDeque、PriorityQueue、HashMap、LinkedHashMap、TreeMap 及并发容器类等。 3. 并发 并发:线程基础、JMM、AQS、CAS、锁与线程安全(Synchronized、ReentrantLock)、JUC、线程池、定时...

    leetcode算法题主函数如何写-Algorithm-DataStructure:算法-数据结构

    (1)二叉树:二分搜索树、AVL(自平衡)、红黑树(统计性能高,自平衡,最常用)。 (2)堆(优先队列)、线段树。 (3)多叉树:Trie、并查集。 3.抽象数据结构: 有序集合TreeSet,有序映射TreeMap,底层基于平衡树实现。 ...

    JAVA核心知识点整理(有效)

    25 3:ServicorTo 和 ServicorFrom 互换................................................................................................................25 2.3.3.1. 2.4.1. 如何确定垃圾 ......................

Global site tag (gtag.js) - Google Analytics