zoukankan      html  css  js  c++  java
  • java集合 :map 学习

    map三个实现类HashMap,TreeMap,HashTable

    1.  (1)  HashMap概述:

       HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

      (2) HashMap的数据结构:

       在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。

    网上详细的介绍:http://zhangshixi.iteye.com/blog/672697

     

    Map存储健值对,根据键得到值,不允许键重复。

    
    

    1、HashMap、LinkedHashMap、TreeMap 只允许一个键为null,值不限制。

    
    

    2、Hashtable 线程安全,键不能为null,与HashMap类似,但效率较低,HashMap如果需要实现同步,可以使用Collections. synchronizedMap或ConcurrentHashMap 。

    
    

    3、HashMap键无序;LinkedHashMap键保存了插入的顺序,使用Iterator遍历时,得到的也是插入顺序的记录;TreeMap默认按键的升序排序,可以定制比较器。

    
    
    public class Hashtable<k,v> extends Dictionary<k,v> implements Map<k,v>, Cloneable, Serializable
    
    public class HashMap<k,v> extends AbstractMap<k,v> implements Map<k,v>, Cloneable, Serializable
    
    public class LinkedHashMap<k,v> extends HashMap<k,v> implements Map<k,v>
    
    public class TreeMap<k,v> extends AbstractMap<k,v> implements SortedMap<k,v>, NavigableMap<k,v>, Cloneable, Serializable
    
    public interface SortedMap<k,v> extends Map<k,v><k,v><k,v><k,v><k,v><k,v><k,v><k,v><k,v><k,v><k,v><k,v><k,v><k,v><k,v>
    
    

    遍历Map的方法:

    
    
         Map<string,integer> hashMap = new HashMap<string,integer>();
            Random random = new Random();
            for(int i=1;i<11;i++){
                hashMap.put("map"+i, random.nextInt(i));
            }
            Set hashMapKey = hashMap.keySet();
            Collection hashMapValue = hashMap.values();
            Iterator keyVal = hashMapKey.iterator();
            System.out.print("key:");
            while(keyVal.hasNext()){
                System.out.print(" "+keyVal.next());
            }
            Iterator hashMapVal = hashMapValue.iterator();
            System.out.print("
     value:");
            while(hashMapVal.hasNext()){
                System.out.print(" "+hashMapVal.next());
            }
     
    
    
  • 相关阅读:
    poj 2485 Highways 最小生成树
    hdu 3415 Max Sum of MaxKsubsequence
    poj 3026 Borg Maze
    poj 2823 Sliding Window 单调队列
    poj 1258 AgriNet
    hdu 1045 Fire Net (二分图匹配)
    poj 1789 Truck History MST(最小生成树)
    fafu 1181 割点
    减肥瘦身健康秘方
    人生的问题
  • 原文地址:https://www.cnblogs.com/mpxBlog/p/4538787.html
Copyright © 2011-2022 走看看