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());
            }
     
    
    
  • 相关阅读:
    毕业设计每日博客--第一周4
    毕业设计每日博客--第一周3
    python使用chrome driver做简单爬虫--转载于简书
    毕业设计每日博客--第一周2
    毕业设计每日博客--第一周1
    每周总结9
    阅读笔记9--分析模式
    阅读笔记8--分析模式
    pycharm报错ModuleNotFoundError: No module named 'selenium'
    mac pycharm2019.3 安装和激活
  • 原文地址:https://www.cnblogs.com/mpxBlog/p/4538787.html
Copyright © 2011-2022 走看看