在我目前的项目中,我用 Java 实现了以下数据结构。
Map<List<String>, Set<Subscriber>> regionSubscriber
= new Hashtable<List<String>, Set<Subscriber>>();
我想对上述数据结构实现以下操作。
1)检查该映射中是否存在密钥(类似于containsKey(Key)
)。2) 获取带键列表的集合(类似于get(key)
)。
我尝试过使用 Map 的默认功能,例如containskey(Key)
和get(Key)
。但是,它们不起作用,因为这里的键是列表(不是单个对象)。
你能就这些行动的实施给我建议吗?让我知道如果您需要更多详细信息以便清楚起见。
更新:我编写了以下 equals() 和 hashCode() 函数。请检查这些功能。他们不工作。对这些功能的任何更正。
public boolean equals(Object obj){
boolean booleanFlag = false;
List<String> regionID = (List<String>) obj;
for(int i=0; i< regionID.size() ; i++) {
if ( regionID.get(i).equals(this.regionIDs.get(i)) ){
booleanFlag = true;
} else {
booleanFlag = false;
}
}
return booleanFlag;
}
@Override
public int hashCode() {
int hashValue = 0;
for(int i=0; i< regionIDs.size(); i++) {
hashValue = hashValue + regionIDs.get(i).hashCode();
}
return hashValue;
}