zoukankan      html  css  js  c++  java
  • Java集合----Map集合

    Map

    Map 用于保存具有映射关系的数据,因此 Map 集合里保存着两组值,一组值用于保存 Map 里的 Key,另外一组用于保存 Map 里的 Value
    Map 中的 key 和 value 都可以是任何引用类型的数据
    Map 中的 Key 不允许重复,即同一个 Map 对象的任何两个 Key 通过 equals 方法比较中返回 false
    Key 和 Vlaue 之间存在单向一对一关系,即通过指定的 Key 总能找到唯一的,确定的 Value。


    Map 常用方法

    HashMap & Hashtable


    HashMap 和 Hashtable 是 Map 接口的两个典型实现类
      区别:
      Hashtable 是一个古老的 Map 实现类,不建议使用
      Hashtable 是一个线程安全的 Map 实现,但 HashMap 是线程不安全的。
      Hashtable 不允许使用 null 作为 key 和 value,而 HashMap 可以
      与 HashSet 集合不能保证元素的顺序的顺序一样,Hashtable 、HashMap 也不能保证其中 key-value 对的顺序
      Hashtable 、HashMap 判断两个 Key 相等的标准是:两个 Key 通过 equals 方法返回 true,hashCode 值也相等。
      Hashtable 、HashMap 判断两个 Value相等的标准是:两个 Value 通过 equals 方法返回 true

    LinkedHashMap
      LinkedHashMap 是 HashMap 的子类
      LinkedHashMap 可以维护 Map 的迭代顺序:迭代顺序与 Key-Value 对的插入顺序一致

    Properties
      Properties 类是 Hashtable 的子类,该对象用于处理属性文件
      由于属性文件里的 key、value 都是字符串类型,所以 properties 里的 Key 和 Value 都是字符串类型的

    TreeMap


    TreeMap 存储 Key-Value 对时,需要根据 Key 对 key-value 对进行排序。TreeMap 可以保证所有的 Key-Value 对处于有序状态。
    TreeMap 的 Key 的排序:
      自然排序:TreeMap 的所有的 Key 必须实现 Comparable 接口,而且所有的 Key 应该是同一个类的对象,否则将会抛出ClasssCastException
      定制排序:创建 TreeMap 时,传入一个 Comparator 对象,该对象负责对 TreeMap 中的所有 key 进行排序。此时不需要 Map 的 Key 实现 Comparable 接口

  • 相关阅读:
    PTA习题解析——银行排队问题
    线性表结构详解
    SkipList (跳跃表)解析及其实现
    C++面向过程编程
    WEB 性能测试用例设计以及总结
    PHP设计模式概述
    影响Linux发展的四位天才黑客
    从Linux 与 Unix 异同,看开源世界的发展!
    移动开发的跨平台技术演进
    AI和机器学习对云应用的安全产生了何种影响?
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7234409.html
Copyright © 2011-2022 走看看