Tengo un hashMap en su propia clase en un archivo diferente.

public class className {

private HashMap<String,String> myMap = new HashMap<String,String>();

}

Quiero recorrer el hashMap y obtener la clave si le paso el valor. Tengo problemas con el entrySet ya que he estado leyendo la siguiente pregunta. Pregunta de Stackoverflow

Mi código para cada ciclo es:

for(Map.Entry<String, String> entry : className.entrySet()){


}

ClassName es el nombre de la clase que contiene mi hashMap y obtengo el error:

No puedo encontrar el símbolo

Supongo que es algo que tiene que ver con no tener un método para entrySet, pero no estoy seguro, ya que la pregunta a la que he vinculado anteriormente no menciona esto.

¿Alguien puede ofrecer algún consejo?

-1
Silentbob 26 oct. 2017 a las 20:27

3 respuestas

La mejor respuesta

Si myMap está en otro class y es private, entonces necesita un public getter method como a continuación.

    public class className {

    private HashMap<String,String> myMap = new HashMap<String,String>();

    public Map getMyMap()
    {
       return myMap;
    }

}




for(Map.Entry<String, String> entry : objectOfClassName.getMyMap().entrySet()){


}
1
Shubhendu Pramanik 26 oct. 2017 a las 17:39

Debe ingresar el nombre del Hashmap. No es el nombre de clase

for(Map.Entry<String, String> entry : myMap.entrySet()){


}
0
Tom Stein 26 oct. 2017 a las 17:30

Debe recorrer su conjunto de entradas myMap:

for(Map.Entry<String, String> entry : myMap.entrySet()){
  // do something with the entry
}
0
tmarwen 26 oct. 2017 a las 17:30