你好
如果您在HashMap<String,String>
一個鍵 - 值對的特定值進行搜索,你可以寫:HashMap.containsKey() - 如何搜索類?
myHashMap.containsKey(myString);
但我又怎麼去管理它,如果關鍵是不是一個字符串?我有一個看起來像這樣的課程:
public class Kategorie implements Comparable {
private String name;
public Kategorie() {
super();
}
public Kategorie(String name) {
setName(name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Object o) {
if (!(o instanceof Kategorie))
throw new ClassCastException();
Kategorie k = (Kategorie)o;
String name = k.getName();
return this.getName().compareTo(name);
}
}
在地圖中,我保存了此類型的鍵和值「Kategorie」。
mapKategorieDEundEN.put(new Kategorie(strName_de), new Kategorie(strName_en));
在後面的代碼中,我想檢查是否有特定字符串的鍵。
if (mapKategorieDEundEN.containsKey(searchString)) {
...不起作用,因爲密鑰不是字符串而是「Kategorie」,這很清楚。
然後我試圖這樣的事情:
if (mapKategorieDEundEN.containsKey(new Kategorie(searchString))) {
...沒有工作過。我認爲它沒有找到任何東西,因爲該對象不是「原始」對象而是一個新對象。
在這種情況下,我可以使用containsKey還是必須在HashMap上使用循環?
+1:按照HavMap的javadoc。 – 2011-06-06 08:01:23
@downvoter,請解釋一下你的hit-and-run downvote。 – 2011-06-06 08:03:35
是的,我很高興知道爲什麼我的回答是downvoted。 – Kaj 2011-06-06 08:09:28