java中map插入相同的key
来源:互联网 发布:加工中心钻孔手动编程 编辑:程序博客网 时间:2024/06/15 14:21
测试用例:
package test;import org.junit.Test;import po.Person;import java.util.HashMap;import java.util.IdentityHashMap;import java.util.Map;/** * Created by Administrator on 2015/9/16. */public class TestMap { /** * map插入相同key问题,value会不会覆盖 */ @Test public void testMap(){ //HashMap中key的内容相同,则覆盖 Map<String,Object> map1 = new HashMap<>(); map1.put("张三",1); map1.put("张三",2); map1.put(new String("张三"),3); //根据String特性,这三条内容相同,前两条地址相同 map1.put("李四", 4); for (String s : map1.keySet()) { System.out.println(s+"======"+map1.get(s)); } /** 结果 * 张三======3 李四======4 */ System.out.println("====================================="); //IdentityHashMap中key的内存地址必须完全相同才会覆盖 Map<String,Object> map2 = new IdentityHashMap<>(); map2.put("张三",1); map2.put("张三",2); map2.put(new String("张三"),3);// map2.put("李四", 4); for (String s : map2.keySet()) { System.out.println(s+"===="+map2.get(s)); } /** * 李四====4 张三====2 张三====3 */ System.out.println("====================================="); Map<Person,Object> map3 = new IdentityHashMap<>(); map3.put(new Person("张三", 11), 1); map3.put(new Person("张三", 11), 3); map3.put(new Person("李四", 11), 4); for (Person s : map3.keySet()) { System.out.println(s.toString()+"===="+map3.get(s)); } /** * po.Person@165474cf====1 po.Person@3ff2caf4====4 po.Person@2c0cd7d====3 */ System.out.println("====================================="); Person person = new Person("张三", 11); Person person2 = new Person("张三", 11); System.out.println(person.equals(person2)); }}
package po;/** * Created by Administrator on 2015/9/16. */public class Person { int id; String name; int age; @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; if (id != person.id) return false; if (age != person.age) return false; return !(name != null ? !name.equals(person.name) : person.name != null); } @Override public int hashCode() { int result = id; result = 31 * result + (name != null ? name.hashCode() : 0); result = 31 * result + age; return result; } public Person(String name,int age){ this.name=name; this.age=age; }}
0 0
- java中map插入相同的key
- 合并map中key相同的value
- stl : map 插入相同key组成的make_pair, 结果是插入不进去, 不是覆盖
- java中map里面的key按我们插入进去的顺序输出
- C++之map插入数据相同的key不能覆盖value解决办法
- Map 取相同值的key
- 遍历 map 获取相同 key 值的和
- 插入相同“键值”key时Linux 内核中红黑树的使用
- Java中key可以重复的Map集合:IdentityHashMap(转)
- Java中key可以重复的Map集合:IdentityHashMap(转)
- java中key值可以重复的map:IdentityHashMap
- java 获取 Map中所有的 key 和 value 值
- java 获取map中所有的key值
- java 获取map中所有的key和value值
- java中key值可以重复的map---IdentityHashMap
- Java中key可以重复的Map集合:IdentityHashMap
- Java中key可以重复的Map集合:IdentityHashMap
- java中key值可以重复的map:IdentityHashMap
- x64程序配置
- MySQL数据库MyISAM和InnoDB存储引擎的比较
- spring注解
- java中String的相等比较
- JAVA中的关键字
- java中map插入相同的key
- CSS布局 ——从display,position, float属性谈起
- 中介者模式——对象行为型模式
- web项目中,视图层中关于相对路径和绝对路径
- Python Web 开发学习 - 学习笔记(4)- Python的编码规则
- eclipse中断点调试debug
- 使用junit测试用例
- Codeforces 605A Sorting Railway Cars [贪心]
- Mybatis学习错误之:重复加载mapper.xml