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]}
完。
谢谢观看。