我想创建一个对象的hashmap并使用二维密钥:
public HashMap<ConversationKey, ConversationItem> ConversationMap = new HashMap<ConversationKey, ConversationItem>();
其中会话密钥为:
public class ConversationKey {
private String Left;
private String Right;
}
但是我不完全理解我需要什么样的ovverridded方法,另一篇文章说我需要一个hashcode()和equals()但hashcode()不可用并自动添加未实现的方法只需添加compareTo()
有人可以通过提供两个字符串值作为密钥来帮助我创建一个二维密钥对象来用于从散列图中检索项目吗?
这是我到目前为止所做的:
public class ConversationKey implements Comparable<ConversationKey> {
private String Left;
private String Right;
public ConversationKey(String left, String right) {
Left = left;
Right = right;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof ConversationKey) {
return Left.equals(((ConversationKey)obj).Left) &&
Right.equals(((ConversationKey)obj).Right);
}
return false;
}
@Override
public int compareTo(ConversationKey another) {
if (Left.equals(another.Left) && Right.equals(another.Right)) {
return 0;
}
return -1;
}
}
最终实施是:
ConversationKey ck = new ConversationKey("jack", "jane");
ConversationItem Conversation1 = ConversationMap.get(ck);
答案 0 :(得分:0)
我认为对于Comparable,您需要使用
public int compareTo(ConversationKey ck){}