`
zuimeitulip
  • 浏览: 59801 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

HashMap,LinkedMap,TreeMap的区别

 
阅读更多


HashMap,LinkedHashMap,TreeMap都属于Map

Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。

 

HashMap
是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力。

                                                                                   
LinkedHashMap
LinkedHashMap也是一个HashMap,但是内部维持了一个双向链表,可以保持顺序

 

TreeMap 可以用于排序

 

HashMap的例子
public static void main(String[] args) {  

      Map<String, String> map = new HashMap<String, String>(); 

      map.put("a3", "aa");

      map.put("a2", "bb"); 

      map.put("b1", "cc");

      for (Iterator iterator = map.values().iterator(); iterator.hasNext();)     {

            String name = (String) iterator.next(); 

            System.out.println(name);   

     }  

  }

 

输出:bbccaa

LinkedHashMap例子:

   

public static void main(String[] args) {   

     Map<String, String> map = new LinkedHashMap<String, String>();

     map.put("a3", "aa");       

     map.put("a2", "bb"); 

     map.put("b1", "cc"); 

     for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {           

             String name = (String) iterator.next(); 

             System.out.println(name);     

     }

}


输出:
aa
bb
cc

 

TreeMap例子:

 

public static void main(String[] args) {      

  Map<String, String> map = new TreeMap<String, String>(new Comparator<Object>(){    

        public int compare(Object o1, Object o2) {           

                  String  key1 = o1.toString();   

                  Stirng  key2 = o2.toString();   

                  return key1.compareTo(key2);  

          }});    

        map.put("3", "aa");     

        map.put("2", "bb");     

        map.put("1", "cc"); 

       for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {       

                String name = (String) iterator.next();           

                System.out.println(name);       

      }

   }

输出:
cc
bb
aa

分享到:
评论

相关推荐

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

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

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

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

    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

    【HashMap、Hashtable、TreeMap详解】 HashMap、Hashtable和TreeMap都是Java中实现Map接口的类,它们用于存储键值对数据,但各自具有不同的特点和使用场景。 HashMap是最常用的Map实现,它通过哈希表(散列表)...

    HashMap vs TreeMap vs Hashtable vs LinkedHashMap

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

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

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

    treemap treeset hashset hashmap 简要介绍

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

    HashMap,HashTable,LinkedHashMap,TreeMap的区别

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

    Java基础教程之Map集合深入讲解及其应用

    涵盖了Map接口的基本介绍,三种主要的实现类——HashMap、TreeMap、LinkedHashMap的具体实现方式及其特点。此外,文中还探讨了Map的各种基本操作方法(put、get、remove等)、遍历方式以及在使用时应注意的问题,...

    HashMap和HashTable的区别和不同

    ### HashMap与HashTable的区别详解 #### 引言 在Java编程中,`HashMap`与`HashTable`作为两种常用的数据结构,经常被用来存储键值对数据。尽管它们在功能上相似,但在实现细节、性能表现以及使用场景方面存在显著...

    hashmap与hashtable区别

    ### HashMap与Hashtable的区别 在Java编程语言中,`HashMap`和`Hashtable`是两种非常重要的数据结构,它们都用于存储键值对。然而,在实际应用过程中,这两种数据结构有着本质的不同,下面将详细介绍这些差异。 ##...

    HashMap底层实现原理HashMap与HashTable区别HashMap与HashSet区别.docx

    HashMap与HashTable的主要区别在于线程安全性和对null值的支持。HashMap是非同步的,意味着在多线程环境中,如果不进行适当的同步控制,可能会导致数据不一致。而HashTable是同步的,因此它在多线程环境下的安全性更...

    HashMap与HashTable区别

    ### HashMap与HashTable的区别 在Java编程语言中,`HashMap`和`HashTable`是两种非常重要的数据结构,它们都实现了`Map`接口,并提供了键值对的存储方式。这两种数据结构虽然相似,但在实现细节和使用场景上存在...

    hashMap和hashTable的区别

    ### hashMap和hashTable的区别 #### 一、简介与基本概念 `HashMap` 和 `HashTable` 都是 Java 集合框架中非常重要的数据结构,它们都实现了 `Map` 接口,用于存储键值对。尽管它们在功能上有很多相似之处,但在...

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

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

    浅谈Java中HashMap类的使用.pdf

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

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

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

Global site tag (gtag.js) - Google Analytics