zoukankan      html  css  js  c++  java
  • HashMap 实现原理 1.8

    1.HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可能会存在问题

    2.底层实现原理1.8 主要基于散列算法 链表和 红黑树 实现

    3.主要成员变量  

     table 记录桶的数组 size 桶的大小

     DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 默认桶的大小

     DEFAULT_LOAD_FACTOR  负载因子默认0.75

    名称用途initialCapacityHashMap 初始容量

    loadFactor负载因子

    threshold当前 HashMap 所能容纳键值对数量的最大值,超过这个值,则需扩容

    4.主要内部类实现

       Node 基于链表的单向节点

     TreeNode 红黑树节点

     5.查找 即先定位键值对所在的桶的位置,然后再对链表或红黑树进行查找。通过这两步即可完成查找

     

  • 相关阅读:
    c++ *.h和*.cpp在编译中的作用
    test
    DOM Tree
    SecureCRT
    趣味盒1
    数据结构笔试:前缀表达式|后缀表达式
    Shell 文件包含
    Shell 输入/输出重定向
    Shell 函数
    Shell 流程控制
  • 原文地址:https://www.cnblogs.com/bug1024/p/11282809.html
Copyright © 2011-2022 走看看