首页 > 其他分享 >HashMap里面有哪些方法会更改modCount

HashMap里面有哪些方法会更改modCount

时间:2023-07-14 15:44:21浏览次数:34  
标签:HashMap 更改 映射函数 value modCount 键值 key

modCount 是 HashMap 类中的一个成员变量,用于记录 HashMap 结构发生变更(如插入、删除、扩容等操作)的次数。在 HashMap 中,有以下方法会更改 modCount的值:

1. put(K key, V value):插入一个新的键值对。
2. putAll(Map<? extends K, ? extends V> m):将一个 Map 中的所有键值对复制到当前 HashMap 中。
3. putIfAbsent(K key, V value):如果指定的键不存在于当前 HashMap 中,则插入一个新的键值对。
4. remove(Object key):删除指定键对应的键值对。
5. remove(Object key, Object value):删除指定键和值的键值对。
6. clear():清空当前 HashMap 中的所有键值对。
7. replace(K key, V value):替换指定键对应的键值对。
8. replace(K key, V oldValue, V newValue):替换指定键和值的键值对。
9. compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction):根据给定的键和重新映射函数计算新的值,并更新键值对。
10. computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction):如果指定的键不存在于当前 HashMap 中,则根据给定的映射函数计算新的值,并插入一个新的键值对。
11. computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction):根据给定的键和重新映射函数计算新的值,并更新键值对。
12. merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction):根据给定的键、新值和重新映射函数计算新的值,并更新或插入一个新的键值对。

这些方法在执行过程中,会导致 HashMap 的内部结构发生变化,因此需要更新 modCount 的值以反映这种变化。请注意,在多线程环境下,使用这些方法时需要确保线程安全。如果需要在多线程环境下使用 HashMap,建议使用 ConcurrentHashMap 类,它提供了线程安全的 put 和 remove 等操作。

标签:HashMap,更改,映射函数,value,modCount,键值,key
From: https://www.cnblogs.com/15078480385zyc/p/17553859.html

相关文章

  • 未来mac下载orsoon域名更改为macxz
    “原orsoon网站于近日域名更改为mac.macxz.com,给用户带来的不便敬请谅解!”网站优势未来软件园是国内大型的更新最快的软件信息发布中心。经历多年来的稳定发展,现已成为国内影响力最大的软件门户网站。未来软件园推出作者发布,旨在希望能为软件作者提供一个展示自己产品的优秀......
  • Excel单元格进入编辑模式,保存更改退出编辑模式
    在Excel中,按F2键可以进入单元格的编辑模式,以便在单元格中编辑公式或文本。要退出编辑模式并保存更改,可以按Enter键或Tab键。如果要放弃更改并退出编辑模式,可以按Esc键。以下是一些常见的方法来退出编辑模式:按下Enter键:按下Enter键将保存更改并将焦点移动到下一个......
  • 更改label标签的文本内容
    1.原始标签 2.变更的代码 3.效果 ......
  • HashMap 源码阅读
    HashMap源码阅读HashMap是线程不安全的,若需要考虑线程安全则需要用HashTable属性//默认大小1<<4为16staticfinalintDEFAULT_INITIAL_CAPACITY=1<<4;//最大2的30次方staticfinalintMAXIMUM_CAPACITY=1<<30;//默认负载因子0.75staticfinal......
  • 关于vue在列表展示数据的时候,更改其中一项,列表没有跟着实时变动的问题
    背景:使用低代码自动生成的Vue前端大致页面,然后自定义其中的业务涉及的页面: 遇到的问题:点击添加后,直接变更添加行的状态(输入框不可编辑、状态变为已激活)涉及代码:addRecordAndApply(index){letthatthis=this;letindexData=this.dataList[index];......
  • centos8的root密码更改
    centos8的root密码更改此界面按e在linux行末尾加入参数rd.break按ctrl+s保存。ctrl+x启动输入mount-orw,remount/sysroot重新挂载sysroot并赋予rw权限输入chroot/sysroot把sysroot修改为/目录通过passwdroot或者echo1|passwd--stdinroottouch/.autorelabel重置SEli......
  • Wordpress:如何更改Elementor绑定的网站?
    在使用Wordpress做网站的过程中,需要用到Elementor付费版进行优化网站,一般是绑定一个网站后,要想新建另一个网站,基础版不支持多个绑定,那么如何进行改绑呢?1.进入Elementor后台,选择Subscriptions >>>选择已绑定的项,点击右下角ManageThissubscription  2.点击网站后面的锁......
  • HashMap的实现原理详解(看这篇就够了)
    一线资深java工程师明确了需要精通集合容器,尤其是今天我谈到的HashMap。HashMap在Java集合的重要性不亚于Volatile在并发编程的重要性(可见性与有序性)。我会重点讲解以下9点:1.HashMap的数据结构2.HashMap核心成员3.HashMapd的Node数组4.HashMap的数据存储5.HashMap的哈希函数6.哈......
  • HashMap的实现原理详解(看这篇就够了)
     一线资深java工程师明确了需要精通集合容器,尤其是今天我谈到的HashMap。HashMap在Java集合的重要性不亚于Volatile在并发编程的重要性(可见性与有序性)。我会重点讲解以下9点:1.HashMap的数据结构2.HashMap核心成员3.HashMapd的Node数组4.HashMap的数据存储5.HashMap......
  • 项目受源代码管理。向源代码管理注册此项目时出错。建议不要对此项目进行任何更改
    http://www.noobyard.com/article/p-uweyzjzb-cp.html编译Rocket.Windows.Framework项目的时候提示如题的错误,html 用记事本打开出错的几个项目的.csproj文件,把下面几行内容删掉就好了。vue   <SccProjectName>Svn</SccProjectName>  <SccLocalPath>Svn</SccLocalP......