Foros del Web » Programación para mayores de 30 ;) » Java »

Filtro búsqueda Hashmap

Estas en el tema de Filtro búsqueda Hashmap en el foro de Java en Foros del Web. Buenas, Tengo una serie de datos cargados en mi HashMap: Código: private static HashMap <String, Persona> todos = new HashMap<String, Persona>(); Lo que he de ...
  #1 (permalink)  
Antiguo 19/01/2012, 10:37
Avatar de klmnt  
Fecha de Ingreso: diciembre-2007
Mensajes: 34
Antigüedad: 16 años, 11 meses
Puntos: 1
Exclamación Filtro búsqueda Hashmap

Buenas,

Tengo una serie de datos cargados en mi HashMap:

Código:
private static HashMap <String, Persona> todos = new HashMap<String, Persona>();
Lo que he de hacer es una búsqueda con filtro (te piden que el salario sea menor de X euros o que sea de tal provincia).

Se supone que en HashMap sólo se puede hacer búsqueda de las claves y valores sueltos. Entonces, ¿qué me recomendáis para realizar tal filtro?

Un saludo y gracias
  #2 (permalink)  
Antiguo 19/01/2012, 12:51
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Filtro búsqueda Hashmap

Puedes utilizar el método de la clase entrySet, que te devuelve un Set con las entradas del HashMap.

Luego iteras por cada elemento del Set y verificas la condición del filtro.

Ejemplo:

Código Java:
Ver original
  1. HashMap <String, Persona> todos = new HashMap<String, Persona>();
  2.  
  3.  
  4. Set<Map.Entry<String,Persona>> entradas = todos.entrySet();
  5.  
  6. Iterator<Map.Entry<String,Persona>> iterador = entradas.iterator();
  7.  
  8. Map.Entry<String,Persona> entrada;
  9. while(iterador.hasNext()){
  10.  
  11.  entrada = entradas.next();
  12.  
  13.  if(entrada.getValue() .....) //Si no cumple la condicion
  14. {
  15.   iterador.remove(); //Borras el elemento que no cumple y se borra del HashMap, porque están unidos el HashMap y el Set
  16. }
  17.  
  18. }
  #3 (permalink)  
Antiguo 19/01/2012, 13:54
Avatar de klmnt  
Fecha de Ingreso: diciembre-2007
Mensajes: 34
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Filtro búsqueda Hashmap

Muchas gracias por la respuesta alexg88. Por internet había visto ejemplos como el que me has puesto pero al salirme error y demás al final lo que he hecho ha sido recorrer todo el HashMap uno a uno e ir comparando con el filtro y que te ponga la clave para que sea el usuario el que inserte lo que quiera (lo de explicarme no es lo mío, lo sé xDD). Gracias!

Etiquetas: hashmap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:13.