`

HashMap,LinkedHashMap,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);  
        }  
    }

 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);  
        }  
    }  

 TreeMap例子:

    public static void main(String[] args) {  
        //遍历:不管怎么样放,出的时候都是按key的排序(升序)出。  
        Map<String, String> map = new TreeMap<String, String>(new Comparator<Object>(){  
            Collator collator = Collator.getInstance();   
            public int compare(Object o1, Object o2) {  
                CollationKey key1 = collator.getCollationKey(o1.toString());  
                CollationKey key2 = collator.getCollationKey(o2.toString());  
                return key1.compareTo(key2);  
                //return collator.compare(o1, o2);  
            }});  
        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);  
        }  
    }  

 转自:http://wallimn.iteye.com/category/70786

另外,HashTable 具有线程同步,且不可放置空Key

 

 

分享到:
评论

相关推荐

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

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

    java HashMap,TreeMap与LinkedHashMap的详解

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

    HashMap,HashTable,LinkedHashMap,TreeMap的区别

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

    Map,HashMap,TreeMap的使用

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

    JDK_seaswalker.tar.gz

    JDK源码阅读笔记 ...LinkedHashMap TreeMap ConcurrentHashMap ConcurrentLinkedQueue ThreadPool ThreadLocal Reflection ScheduledThreadPool AsynchronousFileChannel BufferedInputStream Enum

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

    了解Map的整体结构也很重要,HashMap和其他Map实现如LinkedHashMap(保持插入顺序或访问顺序的HashMap)都是从AbstractMap继承,而Hashtable则直接继承Dictionary类,这反映了它们设计上的差异和适用场景的不同。...

    HashMap vs TreeMap vs Hashtable vs LinkedHashMap

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

    Java 基础核心总结 +经典算法大全.rar

    HashMap LinkedHashMap TreeMap WeakHashMap Hashtable Collection 集合体系详解 Set 接口 AbstractSet 抽象类SortedSet 接口HashSet LinkedHashSet TreeSet List 接口 AbstractList 和 AbstractSequentialList ...

    Map-main-源码.rar

    在Java中,有许多实现了Map接口的类,如HashMap、TreeMap、LinkedHashMap等,它们各自具有不同的特性和性能特点。本篇文章将主要围绕这些Map的主要实现类进行源码分析,探讨其内部工作原理。 一、HashMap HashMap...

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

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

    java集合类学习汇总

    Map接口存储键值对,如HashMap、TreeMap和LinkedHashMap,HashMap快速查找,TreeMap按键排序,LinkedHashMap保持插入顺序或访问顺序。 接下来,我们来看一些具体的应用场景。ArrayList常用于需要快速随机访问且不...

    Java 72 道面试题及答案.docx

    3. Map(映射):键值对集合,键无序、唯一,值可重复,实现类有HashMap、TreeMap、HashTable等。 集合框架的优点: 1. 容量自增长。 2. 提供高性能的数据结构和算法。 3. 可以方便地扩展或改写集合,提高代码复用...

    众神:GoDS(数据结构)。 容器(集合,列表,堆栈,地图,树),集合(HashSet,TreeSet,LinkedHashSet),列表(ArrayList,SinglyLinkedList,DoublyLinkedList),堆栈(LinkedListStack,ArrayStack),地图(HashMap,TreeMap,HashBidiMap,TreeBidiMap,LinkedHashMap) ,树(RedBlackTree,AVLTree,BTree,BinaryHeap),比较器,迭代器,可

    GoDS(Go数据结构) Go中各种数据结构和算法的实现。 数据结构 货柜 所有数据结构都通过以下方法实现容器接口: type Container interface { Empty () bool Size () int Clear () Values () [] interface {} ...

    HASHMAP排序功能描述

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

    java8源码-JavaRobot:Java学习笔记,JavaLearningNote

    LinkedHashMap ConcurrentHashMap TreeMap Hashtable Set源码系列 HashSet LinkedHashSet TreeSet HashSet Concurrent源码系列 待完善 JVM(Java虚拟机) 类加载 垃圾回收算法 JavaConcurrent(Java并发系列) 【Java...

    浦发银行笔试题目答案大全

    Map的主要实现类有HashMap、TreeMap、LinkedHashMap等。HashMap是最常用的实现,它提供了快速的插入、删除和查找操作,但不保证元素的顺序;TreeMap则按照键的自然排序或自定义比较器进行排序;LinkedHashMap保持了...

    Hashmap 通过对VALUE排序 源代码

    HashMap是Java编程语言中最常用的集合类之一,它提供了一...如果需要在HashMap中直接排序,可能需要结合其他数据结构如TreeMap或LinkedHashMap。如果想深入了解这些源代码,建议直接访问给出的博客链接以获取详细信息。

    JAVA容器讲解.pdf

    Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)

    Java 对象属性map排序示例

    HashMap默认不保证元素顺序,如果需要对HashMap进行排序,可以转换为List或使用LinkedHashMap。例如,将HashMap转换为List,然后使用Collections.sort()进行排序: ```java Map, String&gt; unsortedMap = new HashMap...

Global site tag (gtag.js) - Google Analytics