Hola
si se busca en un HashMap<String,String>
para un valor específico de un valor de par de claves, puede escribir lo siguiente:HashMap.containsKey() - ¿cómo buscar una clase?
myHashMap.containsKey(myString);
Pero ¿Cómo puedo manejar que si la clave no es una cadena? Tengo una clase que se parece a esto:
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);
}
}
En un mapa Salvé claves y valores de este tipo "Kategorie".
mapKategorieDEundEN.put(new Kategorie(strName_de), new Kategorie(strName_en));
Más adelante en el código, quiero verificar si hay una clave con una cadena específica.
if (mapKategorieDEundEN.containsKey(searchString)) {
... no funciona, ya que la clave no es una cadena, sino una "Kategorie", eso está claro.
Luego probé algo como esto:
if (mapKategorieDEundEN.containsKey(new Kategorie(searchString))) {
... no funciona demasiado. Supongo que no encuentra nada porque el objeto no es el objeto "original" sino uno nuevo.
En este caso, ¿puedo usar containsKey o tengo que usar un bucle sobre HashMap?
+1: Según el javadoc para HashMap. –
@downvoter, por favor explique su voto negativo de golpe y fuga. –
Sí, sería bueno saber por qué mi respuesta fue downvoted. – Kaj