
java中的Map的键如果是自己写的一个类的对象,怎么根据这个键获取值
因为现在无法获得最开始Map.put(键,值)中的那个键,重新创建一个一样的那个对象,放在get()中无法获得,有没有解决方法...
因为现在无法获得最开始Map.put(键,值)中的那个键,重新创建一个一样的那个对象,放在get()中无法获得,有没有解决方法
展开
1个回答
展开全部
重写自定义对象的hashcode()方法,让内容相同的对象返回一样的hashcode..默认情况自定义对象是以内存地址为hashcode,你“重新创建一个一样的对象”,存在“重新创建”就会导致对象不一样...所以要重写覆盖hashcode方法才能获取到map值
另外,也可以低层一点,你的自定义对象上设一个int id属性. 而Map转为以id为键,比如Map<int, Value>。
另外,也可以低层一点,你的自定义对象上设一个int id属性. 而Map转为以id为键,比如Map<int, Value>。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询