Hello
Если вы ищете в HashMap<String,String>
конкретное значение пары ключ-значение, вы можете написать следующее:
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)) {
... не работает, потому что ключ не строка, а «категория», это понятно.
Затем я попробовал что-то вроде этого:
if (mapKategorieDEundEN.containsKey(new Kategorie(searchString))) {
... тоже не работает.Я предполагаю, что он ничего не находит, потому что объект - это не «оригинальный» объект, а новый.
В этом случае я могу вообще использовать containsKey или мне нужно использовать цикл надHashMap?