`
sailinglxg
  • 浏览: 92508 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

TreeMap与HashMap区别

    博客分类:
  • java
阅读更多

Eclipse里新建java工程,run as 一下以下code就知道区别了.

package src.com.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

public class CompareMap {
    private static List list = null;
    private static int size = 3;
    public List CreateList1(){
     List lt1 = new ArrayList();
     Map hm = null;
     for(int i=0;i<size;i++){
      hm = new HashMap();
      hm.put("dd", "dd"+i);
      hm.put("bb", "bb"+i);
      hm.put("cc", "cc"+i);
      hm.put("aa", "aa"+i);
      hm.put("ee", "ee"+i);
      lt1.add(hm);
     }
     return lt1;
    }
   
    public List CreateList2()throws ClassCastException{
     List lt2 = new ArrayList();
     Map tm = null;
     for(int i=0;i<size;i++){
      tm = new TreeMap();
      tm.put("dd", "dd"+i);
      tm.put("bb", "bb"+i);
      tm.put("cc", "cc"+i);
      tm.put("aa", "aa"+i);
      tm.put("ee", "ee"+i);
      lt2.add(tm);
     }
     return lt2;
    }
 /**
  * @param args
  * @throws IllegalAccessException
  * @throws InstantiationException
  */
 public static void main(String[] args){
  // TODO Auto-generated method stub
  CompareMap cm =new CompareMap();
  System.out.println("-----------HaspMap------------");
        List list1 = (List)cm.CreateList1();
        Map hm = null;
        for(int i=0;i<list1.size();i++){
         hm = (HashMap)list1.get(i);
         System.out.println(hm.toString());
        }
        System.out.println("-----------TreeMap------------");
        List list2 = (List)cm.CreateList2();
        Map tm = null;
        for(int i=0;i<list2.size();i++){
   tm = (TreeMap)list2.get(i);
         System.out.println(tm.toString());
        }
 }

}

分享到:
评论

相关推荐

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

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

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

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

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

    ### Java中HashMap, LinkedHashMap, TreeMap,HashTable的区别 在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, ...

    treemap treeset hashset hashmap 简要介绍

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

    HashMap,HashTable,LinkedHashMap,TreeMap的区别

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

    java HashMap,TreeMap与LinkedHashMap的详解

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

    Map,HashMap,TreeMap的使用

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

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

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

    尚硅谷——Java TreeMap源码解析

    TreeMap与HashMap不同的是,TreeMap的元素是根据键的自然排序或通过Comparator提供的排序来维护键的有序性。TreeMap提供了对排序映射操作的完全控制,因此它比HashMap更适合在需要排序和按键顺序访问元素的场景中...

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

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

    Treemap-4.1.2

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

    HashMap排序

    - 使用`TreeMap`:创建一个`TreeMap`对象并传入`ByValueComparator`作为构造函数参数,然后将`HashMap`的所有键值对放入`TreeMap`中。 - 使用`Collections.sort()`:创建一个包含所有键的`ArrayList`,然后调用`...

    JAVA中HashMap的用法.docx

    与HashMap相比,TreeMap使用了红黑树数据结构,保证了插入、删除和查找操作的O(log n)时间复杂度。TreeMap中的元素是按照键的自然顺序或者比较器的顺序排序的,因此在迭代时会返回有序的结果。 在示例代码中,我们...

    HASHMAP排序功能描述

    - 如果对HashMap进行大量的排序操作,考虑使用TreeMap,它默认按照key的自然顺序排序,也可以自定义Comparator。 **5. 结论** HashMap排序并不是HashMap本身的功能,而是通过其他手段实现的。根据实际需求,可以...

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

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

    hashmap.zip

    - "讲义"可能系统地介绍了HashMap的基础知识,如插入、查找和删除的步骤,以及HashMap与其他数据结构(如TreeMap)的区别。 通过深入研究这些资源,开发者可以更好地掌握HashMap的使用技巧,避免常见的性能问题,并...

    HashMap底层原理.pdf

    本文将详细介绍HashMap的底层原理,包括其内部实现结构、关键字段的作用、以及JDK 1.7和JDK 1.8版本的主要区别。 首先,HashMap是基于哈希表的Map接口非同步实现,它允许使用null值和null键,这意味着HashMap在设计...

    Java-HashMap.rar_hashmap_java hashmap

    3. **容量与负载因子**:`HashMap`有一个初始容量(默认为16)和负载因子(默认为0.75)。当元素数量达到容量与负载因子的乘积时,`HashMap`会自动进行扩容,将容量翻倍。 4. **键值对**:键(Key)必须实现`...

    HashMap vs TreeMap vs Hashtable vs LinkedHashMap

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

Global site tag (gtag.js) - Google Analytics