treemap 和 hashmap的效率比较

treemap 和 hashmap的效率比较区别 1 hashmap 是无序的 treemap 是有序的 整个 key 是按照自然顺序来的 2 hashmap 可以 put 一个 null 当 key treemap 却不支持 3 底层结构不一样 一个是数组 红黑树 一个直接就是红黑树 但是 hashmap 是最最最常用的 map 集合 不考虑顺序的时候 他是首选 假如你希望有点顺序的话 想使用一下 treemap 但是整个 treemap 和整个 hashmap 的效率到底差别多少 不太确定 万一整个 treemap 效率很低 那就影响程序性能了 那就不好了 测试一下 有个底 简单

区别:1,hashmap是无序的,treemap是有序的,整个key是按照自然顺序来的。2,hashmap可以put一个null当key ,treemap却不支持。3,底层结构不一样,一个是数组➕红黑树,一个直接就是红黑树。

但是hashmap是最最最常用的map集合,不考虑顺序的时候,他是首选,假如你希望有点顺序的话,想使用一下treemap,但是整个treemap和整个hashmap的效率到底差别多少,不太确定,万一整个treemap效率很低,那就影响程序性能了,那就不好了。测试一下,有个底。

简单的测试代码:

 @Test public void test1() { Map 
  
    hashMap = Maps.newHashMap(); hashMap.put(null, "xs"); hashMap.put(null, null); TreeMap 
   
     treeMap = Maps.newTreeMap(); treeMap.put(null, "xs"); treeMap.put(null, null); } @Test public void test() { Map 
    
      additionalData = logMessage.getAdditionalData(); while (true) { hashMap(additionalData); treeMap(additionalData); } } private void treeMap(Map 
     
       map) { TreeMap 
      
        treeMap = Maps.newTreeMap(); treeMap.putAll(map); treeMap.forEach((k, v) -> { String s = k + v; }); } private void hashMap(Map 
       
         map) { Map 
        
          hashMap = Maps.newHashMap(); hashMap.putAll(map); hashMap.forEach((k, v) -> { String s = k + v; }); } 
         
        
       
      
     
    
  

测试结果:略,第一个测试put null key的时候,直接NPE。主要看效率图。

treemap 和 hashmap的效率比较

看起来差别貌似不太大。真要深究的话,hashmap比treemap的putAll的效率是3:1,因为要拍个序,应该可以接受吧。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210526.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:28
下一篇 2026年3月19日 上午7:28


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号