`

HashMap 和TreeMap的比较

    博客分类:
  • Java
阅读更多
HashMap 和TreeMap的比较
与Java相关信息
HashMap的代码为:

import java.util.*; 
public class hashmap { 
    Map calendar = new HashMap(); 
    public hashmap(String d[],String i[]){ 
        for(int j=0;j<d.length;j++){ 
            calendar.put(d[j], i[j]); 
        } 
    } 
    public static void main(String[] args) { 
        String [] dates = {"10/4","05/7","12/7","01/5"}; 
        String [] items = {"Z","Y","X","C"}; 
        hashmap example = new hashmap(dates,items); 
        Set mapping = example.calendar.entrySet(); 
        System.out.println("map= "+example.calendar); 
        System.out.println("Object\tkey\tvalue"); 
        for(Iterator it = mapping.iterator();it.hasNext();){ 
            Map.Entry me = (Map.Entry)it.next(); 
            Object ok = me.getKey(); 
            Object ov = me.getValue(); 
            System.out.print(me+"\t"); 
            System.out.print(ok+"\t"); 
            System.out.println(ov); 
        } 
    } 

} 

HashTree的代码:
import java.util.*; 
public class hashmap { 
    Map calendar = new TreeMap(); 
    public hashmap(String d[],String i[]){ 
        for(int j=0;j<d.length;j++){ 
            calendar.put(d[j], i[j]); 
        } 
    } 
    public static void main(String[] args) { 
        String [] dates = {"10/4","05/7","12/7","01/5"}; 
        String [] items = {"Z","Y","X","C"}; 
        hashmap example = new hashmap(dates,items); 
        Set mapping = example.calendar.entrySet(); 
        System.out.println("map= "+example.calendar); 
        System.out.println("Object\tkey\tvalue"); 
        for(Iterator it = mapping.iterator();it.hasNext();){ 
            Map.Entry me = (Map.Entry)it.next(); 
            Object ok = me.getKey(); 
            Object ov = me.getValue(); 
            System.out.print(me+"\t"); 
            System.out.print(ok+"\t"); 
            System.out.println(ov); 
        } 
    } 

}
代码大致相同,但是HashMap的输出是无序的,TreeMap的输出是按关键字升序排列的!


但是TreeMap的开销也比较HashMap大,因为它要处理排序!
分享到:
评论

相关推荐

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

    HashMap和TreeMap是Java中两种常用的Map实现,它们各自具有不同的特性和使用场景。 HashMap是基于哈希表实现的,其核心思想是通过键对象的hashCode()方法来快速定位到对应的桶(bucket),从而提高查找效率。...

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

    - **性能**:尽管`TreeMap`提供排序功能,但它的时间复杂度通常是O(log n),因此在某些情况下可能比`HashMap`和`LinkedHashMap`慢。 #### 4. HashTable `HashTable`是一种古老的`Map`实现,它的设计是为了确保线程...

    Map,HashMap,TreeMap的使用

    在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 Map 接口,都是 Map 的子类,每个子类都有其特点和使用场景。 HashMap HashMap 是最常用的 Map 实现类,它根据键的哈希码值存储数据,能够快速地存储和获取...

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

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

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

    在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...

    java HashMap,TreeMap与LinkedHashMap的详解

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

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

    HashMap、Hashtable和TreeMap都是Java中实现Map接口的类,它们用于存储键值对数据,但各自具有不同的特点和使用场景。 HashMap是最常用的Map实现,它通过哈希表(散列表)实现,提供快速的插入、查找和删除操作,...

    treemap treeset hashset hashmap 简要介绍

    在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中`TreeMap`、`TreeSet`、`HashSet`以及`HashMap`是最常用的数据结构之一。这些集合类各自有着独特的特性和应用场景,下面将对它们进行详细介绍。...

    HashMap vs TreeMap vs Hashtable vs LinkedHashMap

    这是因为TreeMap使用了红黑树的数据结构,它的内部会根据Key的自然排序或自定义比较器进行排序。默认情况下,如果Key实现了Comparable接口,就会按照自然排序,否则你需要提供一个Comparator。在这个例子中,Dog对象...

    HashMap,HashTable,LinkedHashMap,TreeMap的区别

    其中,HashMap, HashTable, LinkedHashMap, TreeMap 是四种常用的 Map 实现类,每种类都有其特点和用途。本文将对这四种 Map 实现类进行比较和分析。 HashMap HashMap 是 Java 中最常用的 Map 实现类,它根据键的 ...

    Java集合专题总结:HashMap 和 HashTable 源码学习和面试总结

    Map接口用于保存具有key-value映射关系的数据,常见的Map实现包括HashMap、TreeMap、HashTable和LinkedHashMap等。Queue是Java提供的队列实现。 本文总结了HashMap和HashTable的源码学习和面试总结,涵盖了它们的...

    java 中HashMap、HashSet、TreeMap、TreeSet判断元素相同的几种方法比较

    在Java编程中,HashMap、HashSet、TreeMap和TreeSet是四种常见的集合类,它们各自有特定的用途和内部实现机制。这些数据结构用于存储和管理数据,其中HashMap和HashSet是基于哈希表实现的,而TreeMap和TreeSet则是...

    浅谈Java中HashMap类的使用.pdf

    HashMap 和 TreeMap 都是 Java 语言中的 Map 接口实现,但它们有所不同。HashMap 不保证映射的顺序,而 TreeMap 则保证映射的顺序。当需要顺序输出时,可以使用 TreeMap 类实现 Map 集合。 六、实例应用 例如,在...

    Treemap-4.1.2

    8. **特性和性能**:与HashMap相比,TreeMap的插入和查找速度较慢,但由于其有序性,对于需要保持数据排序的应用来说,TreeMap是一个更好的选择。在内存使用方面,由于需要存储额外的排序信息,TreeMap通常比HashMap...

    HashMap排序

    在给定的内容中,首先展示了一种使用匿名内部类和`Comparator`接口来对`HashMap`进行排序的方法。具体步骤如下: 1. **创建HashMap**:首先创建一个`HashMap`对象,并向其中添加一些键值对。 2. **转换为List**:将...

    JAVA中HashMap的用法.docx

    在示例代码中,我们创建了三个Map实例:HashMap、Hashtable和TreeMap。HashMap展示了无序的特性,而TreeMap则按顺序打印键值对。Hashtable是HashMap的线程安全版本,但在Java 5之后,推荐使用并发集合如...

    HashMap资料.zip

    8. **HashMap的遍历方式**:HashMap可以通过`keySet()`、`entrySet()`和`values()`方法分别获取键的集合、键值对的集合和值的集合进行遍历,其中`entrySet()`通常是最高效的遍历方式。 9. **HashMap与HashTable的...

    11.集合框架001-Collection接口21-23

    在23号章节中,讲解可能包括了TreeMap如何按照键的自然顺序或比较器排序,红黑树的性质,以及如何通过旋转和颜色调整来维护平衡。 总的来说,这些章节深入地探讨了Java集合框架中两个关键的类:HashMap和TreeMap。...

Global site tag (gtag.js) - Google Analytics