HashMap的实际开发使用

目 录

前言

一、HashMap是什么?

二、使用步骤

1.解析一下它实现的原理

​编辑

2.实际开发使用

总结

前言

本章,只是大概记录一下hashMap的简单使用方法,以及理清一下hashMap的put方法的原理,以及get方法的原理。

一、HashMap是什么?

 首先,要介绍一下它的内部组成,它是哈希表结构的,非常好地结合了数组和链表的优点。当链表长度超过8时,链表转换就会转化为红黑树。数组中的每个元素都是链表,由Node内部类(实现Map.Entry<K,V>接口)实现,它主要通过put方法存储和get方法来进行获取。

二、使用步骤

1.解析一下它实现的原理

首先,它先根据键值key计算出hash值,得到了插入的数组索引

 第2步,就是通过这个索引查找这个数组,如果数组为空,则直接插入一个新的数组;如果不为空,说明之前是有的了,则判断key,如果key是相同的,则直接赋新值,如果不是,则直接来到数组后面的链表

第3步,来到了链表家里了,则是首先判断是否已经为treeNode了,如果还没,则开始遍历链表准备插入,如果长度小于8,则可以插入到链表中,若key存在,则直接覆盖。如果长度大于8,则它要去到红黑树家里了,转换为红黑树,插入键值对。

2.实际开发使用

我们经常在开发中,需要保存某些字段的值时,然后到下一步,需要使用时,则在把它取出来,这时候,使用它就是比较合适的了。

第一步,先定义一个map。

        //map存储订单详情的商品编码我方促销编码,商品第三方购买数量
        Map<String,Integer> thirdPrdQtyMap = new HashMap<>();                      // 小红书购买数量

第二步,则是使用put方法存值。

                logger.info("小红书商家编码====="+thirdPrd.getErpcode());
                MdPromotionBean bean = mdPromotionDao.getById(thirdPrd.getErpcode());  // 小红书促销对象 商家编码
                BizAssert.isTrue(bean!=null,TextUtils.format("小红书商品编码{}在系统中不存在",thirdPrd.getErpcode()));
                if(thirdPrdQtyMap.containsKey(bean.getId())){
                    thirdPrdQtyMap.put(bean.getId(),thirdPrdQtyMap.get(bean.getId()).intValue()+thirdPrd.getQty());
                }else{
                    thirdPrdQtyMap.put(bean.getId(),thirdPrd.getQty());
                }

第三步,最后使用get方法获值。

orderItemssHeadBean.setQty(thirdPrdQtyMap.get(ecBean.getId()));        // 订单的商品数量,用map的

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

总结

本章,只是大概记录一下hashMap的简单使用方法,以及理清一下hashMap的put方法的原理,以及get方法的原理。

猜你喜欢

转载自blog.csdn.net/weixin_46442877/article/details/129557807
今日推荐