`
darrenzhu
  • 浏览: 804213 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HashMap与TreeMap

    博客分类:
  • Java
阅读更多

区别:
1) HashMap是不保证里面元素顺序的,尤其是,随着时间的推移,它也不能保证顺序的不变。
   This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.
  
  TreeMap是实现了SortedMap接口,是有序的,TreeMap是一颗红黑树(自平衡的二叉排序树,且节点带有颜色)

2) HashMap的基本操作get,put的时间复杂度是常数O(1),

   This implementation provides constant-time performance for the basic operations (get and put), assuming the hash function disperses the elements properly among the buckets. Iteration over collection views requires time proportional to the "capacity" of the HashMap instance (the number of buckets) plus its size (the number of key-value mappings). Thus, it's very important not to set the initial capacity too high (or the load factor too low) if iteration performance is important.

   而TreeMap的containsKey, get, put, remove操作的时间复杂度是log(n)
   This implementation provides guaranteed log(n) time cost for the containsKey, get, put and remove operations. Algorithms are adaptations of those in Cormen, Leiserson, and Rivest's Introduction to Algorithms.







分享到:
评论

相关推荐

    Java中HashMap和TreeMap的区别深入理解

    与HashMap一样,TreeMap也是非线程安全的。它的构造方法包括无参构造、接受另一个Map作为初始数据的构造,以及接受比较器来指定排序规则的构造。TreeMap的操作,如插入、删除和查找,通常的时间复杂度为O(log n),这...

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    与`HashMap`类似,它也是基于哈希表实现的,但不允许使用`null`键或值。 - **特点**: - **线程安全**:由于它内部使用了`synchronized`关键字,所以可以直接在多线程环境中使用。 - **不支持null**:既不允许`...

    Map,HashMap,TreeMap的使用

    Java 中的 Map、HashMap、TreeMap 使用详解 Map 是 Java 集合框架中的一个接口,用于存储键值对,根据键可以获取值。Map 中的键不允许重复,但值可以重复。在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 ...

    在Java中如何决定使用 HashMap 还是 TreeMap

    Java 中的 HashMap 和 TreeMap 选择指南 在 Java 中,HashMap 和 TreeMap 都是常用的 Map 实现类,但是在实际开发中,选择哪种 Map 实现类往往让人感到迷茫。下面我们将详细介绍 HashMap 和 TreeMap 的特点、优缺点...

    java HashMap,TreeMap与LinkedHashMap的详解

    在Java编程语言中,`HashMap`、`TreeMap`和`LinkedHashMap`都是`java.util.Map`接口的实现,它们提供了不同的数据存储和访问策略。本文将深入探讨这三种数据结构的特点、工作原理以及适用场景。 1. **HashMap** `...

    第9讲 对比Hashtable、HashMap、TreeMap有什么不同?1

    Hashtable与HashMap类似,也是基于哈希表的,但它在Java早期版本中就已经存在,并且是线程安全的。由于同步机制的存在,Hashtable的性能相比HashMap较低,现在在多线程需求下,通常更推荐使用ConcurrentHashMap,它...

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

    - **时间复杂度**:插入、查找和删除的平均时间复杂度同样为O(log n),与TreeMap相同,但常数项较小,空间效率较高。 - **特性**:ConcurrentSkipListMap支持并发操作,多个线程可以同时进行插入、删除和查找,...

    treemap treeset hashset hashmap 简要介绍

    与`TreeMap`类似,`TreeSet`也支持`headSet()`、`tailSet()`和`subSet()`等方法,用于返回集合的一部分。 ### HashSet `HashSet`是基于哈希表实现的Set(集合)实现,它不保证集合中元素的任何特定顺序。`HashSet`...

    HashMap资料.zip

    7. **HashMap与TreeMap的区别**:HashMap是基于哈希表,而TreeMap是基于红黑树。TreeMap能保持插入顺序或自然排序,但其性能稍逊于HashMap。 8. **HashMap的遍历方式**:HashMap可以通过`keySet()`、`entrySet()`和...

    HashMap vs TreeMap vs Hashtable vs LinkedHashMap

    HashMap是最常用的Map实现,它提供了快速的查找,但不保证元素的顺序,且允许null键和值。TreeMap则按Key的自然排序或自定义排序存储元素,适合需要排序的场景。HashTable是线程安全的,但效率相对较低,不推荐在单...

    Java 对象属性map排序示例

    总结来说,Java中对Map进行排序通常涉及到HashMap与TreeMap的选择,以及Comparator的使用。对于对象属性Map的排序,需要先对Map进行排序,然后可能还要对对象列表进行排序。通过理解这些概念,开发者能够灵活地控制...

    java笔试集合另附各大公司笔试题

    3. **HashMap与TreeMap的区别**:HashMap是无序的,通过哈希算法快速查找,插入和查找速度较快;TreeMap是有序的,内部实现了红黑树,插入和查找遵循排序规则,但效率相对低一些。 在Java笔试中,常见的题目类型...

    兰州大学java实验9

    4. 深入理解Map接口,实现键值对的存取和查找,比较HashMap与TreeMap的性能特点。 5. 应用集合框架解决实际问题,如模拟银行账户系统,使用Map存储用户信息。 6. 实现排序算法,如快速排序、归并排序,利用List接口...

    HashMap,HashTable,LinkedHashMap,TreeMap的区别

    HashMap, HashTable, LinkedHashMap, TreeMap 的区别 在 Java 中,Map 是一个非常重要的集合类,用于存储键值对。其中,HashMap, HashTable, LinkedHashMap, TreeMap 是四种常用的 Map 实现类,每种类都有其特点和...

    CoreJava2_2_ch7.rar

    4. **HashMap与TreeMap**:Map接口的典型实现是HashMap和TreeMap。HashMap同样基于哈希表,提供快速的查找,但不保证元素顺序;TreeMap使用红黑树,保证了元素的排序性。 5. **迭代器(Iterator)**:遍历集合的...

    今日头条java后台岗位.pdf

    - **集合类的区别**:如ArrayList与LinkedList,HashMap与TreeMap,理解它们的增删改查性能差异和适用情况。 - **多线程**:Java提供了Thread、Runnable接口以及并发包(java.util.concurrent)来支持多线程编程,...

    一些java面试经验pdf

    - HashMap与TreeMap:HashMap无序,而TreeMap基于红黑树,保持键的排序。 8. **ConcurrentHashMap**: - JDK1.7:采用Segment分段锁,每个段可以独立锁定,提高了并发性能。 - JDK1.8:使用CAS(Compare And ...

    java集合框架详解以及区别

    **HashMap与TreeMap的区别**(两个文件): - 排序:HashMap无序,TreeMap有序。 - 性能:HashMap对于查找和插入速度更快,而TreeMap对于需要有序性的场景更有优势。 **Hashtable**:与HashMap类似,但它是线程安全...

Global site tag (gtag.js) - Google Analytics