• java-tip-HashMap


    HashMap的基本查找过程:
    先使用key.hashCode()生成哈希值,根据哈希值来确定key存放的位置
    找到key在数组中的位置后,再使用key.equals()方法来找到指定的key。
    1. 自定义的对象需要满足什么条件才能作为HashMap的Key?
        想要作为HashMap的Key必须满足两个条件:
       1) 重写hashCode()方法,一个对象的hashCode()决定对象在Hash表中存放的位置
           注:Object的hashCode()方法是根据对象的地址计算的。
       2) 重写equals()方法,equals()方法决定Hash表中是否存在这个对象
           注:Object的equals()方法只是比较地址
    2. 关于android平台HashMap的装载因子和扩容
    HashMap虽然提供了一个可以指定装载因子的构造函数,但是在实际的实现中并没有使用这个参数
    它的装载因子总是0.75f
    如果实际中key数量过多,会导致碰撞的hash变多,从而影响查找效率。
    当size > capacity * 装载因子 时,HashMap会进行扩容。
    HashMap的扩容步骤如下:
    1. 申请新的数组,大小为旧的两倍
    2. rehash -> 将现有的item放到新的hash表中
    HashMap的扩容是个比较耗时的操作,因此,
    我们在使用HashMap的时候,尽可能指定合适的Capacity以避免扩容。
  • 相关阅读:
    Kubernetes 部署 Kubernetes-Dashboard v2.0.0
    Kubernetes 部署 Metrics Server 获取集群指标数据
    内网终端安全建设(转)
    内网安全运营的逻辑体系架构(转)
    thinkphp5配置文件
    MySQL索引失效的几种情况
    workman使用
    长连接技术(Long Polling)
    php好文章的记录
    php类与对象得使用场景
  • 原文地址:https://www.cnblogs.com/hdtianfu/p/5225825.html
Copyright © 2020-2023  润新知