其他分享
首页 > 其他分享> > HashMap集合

HashMap集合

作者:互联网

HashMap集合

图分析:

水平方向以数组为主体并在竖直方向以链表结构进行结合的就是HashMap中的哈希表结构水平方向数组的长度称为HashMap集合的容量(capacity),竖直方向每个元素对应的链表结构称为一个桶(bucket),每个桶的位置在集合中都有对应的桶值,用于快速定位集合元素添加,查找时的位置。

​ 存储原理:当向HashMap集合添加元素时,首先会调用键对象k的hash(k)的方法,快速定位并寻址到该元素在集合要存储的位置。在定位到存储元素键对象k的哈希值所对应桶位置后,会出现两种情况:1**.键对象k的hash值所在的桶位置为空,则可以直接向该桶位置插入元素**;2**.键对象k的hash值所在的桶位置为不为空**,则还需要继续通过键对象k的equals(k)方法比较新插入的元素键对象k和已经存在的元素键对象k是否相同,如果键对象k相同,就会对原有元素的值对象v进行替换并返回原来的旧值,否则会在该桶的链表结构头部新增一个节点来插入新元素对象

在这里插入图片描述

上代码:

package com.sgl;

import java.util.HashMap;
import java.util.Map;

public class Test {
    public static void main(String[] args) {

        //创建HashMap对象
        Map map = new HashMap();//或HashMap<Object, Object> map = new HashMap<>();两种都可
        //1.向Map存储键值元素
        map.put("1","Jack");
        map.put("2","Rose");
        map.put("3","Lucy");
        map.put("4","Lucy");
        map.put("1","Tom");
        System.out.println(map);
        //2.查看键对象是否存在
        System.out.println(map.containsKey("1"));
        //3.获取指定键对象映射的值
        System.out.println(map.get("1"));
        //4.获取集合中的键对象的值对象集合
        System.out.println(map.keySet());
        System.out.println(map.values());
        //5.替换指定键对象映射的值
        map.replace("1","Ton2");
        System.out.println(map);
        //6.删除指定键对象映射的值
        map.remove("1");
        System.out.println(map);
    }
}

运行结果:

{1=Tom, 2=Rose, 3=Lucy, 4=Lucy}
true
Tom
[1, 2, 3, 4]
[Tom, Rose, Lucy, Lucy]
{1=Ton2, 2=Rose, 3=Lucy, 4=Lucy}
{2=Rose, 3=Lucy, 4=Lucy}

标签:map,HashMap,对象,Lucy,println,集合
来源: https://blog.csdn.net/m0_53821599/article/details/119714301