HashMap基本用法总结

1.创建HashMap对象

HashMap<String, String> map = new HashMap<String, String>();

1.线程不安全的哈希表

2.键值对可以存储null,key不可以重复,value可以重复,重复时覆盖oldVlue

3.取出的数据没有顺序。

2.添加键值对

put方法添加元素时,如果key已经存在,则更新value的值。

存储的key和value都可以为null。

HashMap<String, String> map = new HashMap<String, String>();
map.put("北京", "key存在的oldValue");
map.put("上海", null);
map.put("广州", "oldValue");
map.put(null, "null的oldValue");
map.putIfAbsent(null, "null的newValue");
map.putIfAbsent("杭州", "key不存在的value");
map.putIfAbsent("北京", "key存在的newValue");
map.putIfAbsent("上海", "null值被覆盖");
map.replace("广州", "replaceValue");
map.replace("武汉", "key不存在的value");

replace(key,value);

当key存在时,调用replace方法,会替换value。当key不存在,返回null

@Override
public V replace(K key, V value) {
   
    Node<K,V> e;
    if ((e = getNode(hash(key), key)) != null) {
   
        V oldValue = e.value;
        e.value = value;
        afterNodeAccess(e);
        return oldValue;
    }
    return null;
}

putIfAbsent()当key存在,value有值时不会覆盖value值。

  1. 首先判断key是否存在,不存在和put的作用一致,更新value。
  2. 如果存在判断value是否为null,value为null,则更新value值。
  3. value不为null,则不覆盖,返回原来的value。(null和不存在是两个概念)

put方法源码:

public V put(K key, V value) {
   
    return putVal(hash(key)
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HashMapJava中的一个集合类,用于存储键值对。在使用HashMap时,首先需要创建一个HashMap对象,可以使用泛型来指定键和值的类型,比如HashMap<Integer, Integer>表示键和值都是整数类型的HashMap。然后可以使用put()方法将键值对添加到HashMap中,如put(1, 1)表示将键1与值1关联起来并添加到HashMap中。HashMap的键必须是唯一的,如果添加已经存在的键,则会覆盖原有的值。HashMap只能存储对象,基本数据类型应该使用其包装器类型,比如int应该使用Integer。HashMap还实现了Cloneable和Serializable接口,因此可以进行拷贝和序列化操作。 而最常用的操作之一是使用get()方法来获取HashMap中指定键对应的值,如map.get(1)可以获取键为1对应的值。这样就可以根据键来获取相应的值了。 总结起来,HashMap基本用法包括创建HashMap对象,使用put()方法添加键值对,使用get()方法获取值。这些操作可以帮助我们在程序中高效地存储和检索数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [HashMap:常见用法总结](https://blog.csdn.net/qq_46119575/article/details/129417270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [HashMap的特点与使用方法详解.docx](https://download.csdn.net/download/weixin_44609920/85868938)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值