【基础】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