zoukankan      html  css  js  c++  java
  • java Map集合类

    ---恢复内容开始---

    Map提供了一个更通用的元素存储方法,Map集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。

    了解Map接口和方法

    Map构建

    Map更新方法:可以更改Map内容,

    clear()从Map中删除所有的映射

    remove(Object key)从Map中删除键和关联的值

    put(Object key,Object  value)将指定值与指定键相关联

    putAll(Map t)将指定Map中的所有映射复制到此Map

    HashMap:

    HashMap是基于哈希表的Map接口的实现,以key-value的形式存在,在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来计算key-value的位置

    1.定义:

    HashMap实现了Map接口,继承AbstractMap,其中Map接口定义了键映射到值的规则,而AbstractMap类提供Map接口的骨干实现

    public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,Cloneable,Serializable

    2构造函数:

    HashMap提供了三个构造函数:

    HashMap():构造一个具有默认初始容量(16)和默认加载因子(0.75)的空HashMap

    HashMap(int initialCapacity):构造一个带指定初始容量和默认加载因子(0.75)的空HashMap

    HashMap(int initialCapacity,float loadFactor):构造一个带指定初始容量和加载因子的空HashMap

    初始容量,加载因子,这两个参数是影响HashMap性能的重要参数,其中容量表示哈希表中桶的数量,初始容量是创建哈希表时的容量,加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度,他衡量的是一个散列表的空间的使用程度,负载因子越大表示散列表的装填程度越高,

    3数据结构:

    在java中最常用的两种结构是数组和模拟指针(引用),几乎所有的数据结构都可以利用这两种来组合实现,HashMap是一个“链表散列”,如下是他的数据结构

    从上图可以看出HashMap底层实现的还是数组,只是数组的每一项都是一条链,其中参数initialCapacity就代表了该数组的长度
    4存储实现:
    4.HashMap
      在存储键值对的时候, 使用哈希算法对键对象去重复, 效率高, 没有顺序.
      当存储一个键值对的时候, 先调用键对象的hashCode()方法计算一个哈希值, 在集合中查找是否有哈希值相同键对象.
       如果没有哈希值相同的键对象, 直接将键值对存入.
       如果有哈希值相同键对象, 则和哈希值相同的键对象进行equals()比较.
        比较结果为false就存入键值对.
        比较结果为true则用新的值覆盖旧的值.

  • 相关阅读:
    windows常用命令
    Qt 添加 QtNetwork 库文件
    LoadLibrary加载动态库失败
    C++11 Function 使用场景
    编程书籍集
    代码重构例集
    多重循环编码规范
    vim 命令学习(基础篇)
    QT构建窗体(父窗体传为野指针)异常案例
    JAVA_SE基础——26.[深入解析]局部变量与成员变量的差别
  • 原文地址:https://www.cnblogs.com/chhom/p/4742570.html
Copyright © 2011-2022 走看看