HashMap插入相同key

2022-07-28 14:35:39

HashMap插入的描述

使用HashMap在插入操作时,会通过equal方法判断key是否相同。如果相同,则将覆盖对应的value;不相同才使用新的“桶”。

我的问题

当往HashMap中插入数据,即使有相同的key,但是能不能不进行覆盖操作,而是把新的value放在原有的value附近能够找到的位置?

想法

呃,其实大概方向就是通过一个HashMap<Integer, ArrayList>实现。。。

贴上代码

import java.util.ArrayList;
import java.util.HashMap;

public class MapAndLink {

    public static void main(String[] args){

        HashMap<Integer, ArrayList> map = new HashMap<>();
        put(1, 1, map);
        put(1, 3, map);
        put(2, 2, map);
        put(3, 4, map);
        put(1, 3, map);
        System.out.println(map.toString());
    }

    public static void put(Integer key, Integer str, HashMap<Integer, ArrayList> map){
        ArrayList<Integer> list = map.get(key);
        if(list == null)
            list = new ArrayList();
        for(int i = 0; i < list.size(); ++i){
            if(list.get(i).equals(str))
                return;
        }
        list.add(str);
        map.put(key, list);
    }

}

再贴上输出结果

{1=[1, 3], 2=[2], 3=[4]}

完。

谢谢观看。

  • 作者:古镇黄渤
  • 原文链接:https://blog.csdn.net/qq_37125033/article/details/81387491
    更新时间:2022-07-28 14:35:39