【基础】IdentityHashMap

HashMap中的key不能重复,当新增相同的key时,新增内容会覆盖原来key的内容

IdentityHashMap能达到什么效果
可支持重复的key,但新增的key地址不能同已有key的地址一致,地址一致还是会覆盖的。

import org.junit.Assert;
import org.junit.Test;

import java.util.*;

public class CollectionTest {

    @Test
    public void testIdentityHashMap() {
        Map<String,Integer> map = new IdentityHashMap<>();
        Assert.assertNull(map.put("192.168.0.1", 200));
        Assert.assertEquals(new Integer(200), map.put("192.168.0.1", 300));
        Assert.assertNull(map.put("192.168.1.1", 200));

        map.forEach((k,v)->{
            System.out.println(k+":"+v);
        });

        System.out.println("======");

        Map<String,Integer> map2 = new IdentityHashMap<>();
        map2.put(new String("192.168.0.1"), 200);
        map2.put(new String("192.168.0.1"), 300);
        map2.put("192.168.1.1", 200);

        map2.forEach((k,v)->{
            System.out.println(k+":"+v);
        });
    }

输出的结果是

192.168.1.1:200
192.168.0.1:300
======
192.168.1.1:200
192.168.0.1:200
192.168.0.1:300
posted @ 2020-04-14 15:25  zendwang  阅读(263)  评论(0编辑  收藏  举报