将自己的类设置为Java Hashmap中的键 [英] Setting own class as key in java Hashmap
本文介绍了将自己的类设置为Java Hashmap中的键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个我想在HashMap中设置键的类。我已经实现了该类的compareTo方法。但是,当我这样做时:
map.put(new MyKey(dummyArguements),dummyValue);
System.out.println(map.get(new MyKey(dummyArguements)));
我得到空。
因此,这意味着hashmap无法识别两个键(用于获取和放置调用)是相同的。
有人可以帮我在这里吗?
解决方案
您需要实现 hashCode()
和 equals()方法
。 compareTo()
是有序映射/集合另外需要的。 stackoverflow.com/questions/27581/overriding-equals-and-hashcode-in-java\">此问题了解详情。
I have a class which I want to set up as keys in HashMap. I already have implemented the compareTo method for that class. But still when I do:
map.put(new MyKey(dummyArguements) , dummyValue ); System.out.println(map.get( new MyKey(dummyArguements) ) );
I get null. So that means hashmap is not able to identify that the two keys (for get & put call) are same.
Could someone help me here please ?
解决方案
You need to implement hashCode()
and equals()
. compareTo()
is additionally required for sorted map/set.
See this question for details.
这篇关于将自己的类设置为Java Hashmap中的键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文