Ver Mensaje Individual
  #8 (permalink)  
Antiguo 01/04/2015, 09:58
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: HashMap - Manejo de colisiones

Hola:

Otra opción es meter una lista como valor en el HashMap algo así

Código Java:
Ver original
  1. HashMap<Integer, List<Cliente>> map = new HashMap<Integer, List<Cliente>>();

Cuando quieras meter un valor tendrías que hacer algo así

Código Java:
Ver original
  1. if (null == map.get(clave)) {
  2.     map.put(clave, new LinkedList<Client>());
  3. }
  4. map.get(clave).add(tuCliente);

básicamente, si al meter un cliente, el valor (la lista) no existe, creas la lista y añades a ella el cliente. Si ya existía, simplemente lo añades. Cuando quieras recuperar

Código Java:
Ver original
  1. List<Client> clientes = map.get(clave);

y tendrías la lista de clientes con esa clave. He puesto LinkedList<> por poner algo, puedes poner ArrayList<> o cualquier otra implementación de List<> que te guste más.

Otro detalle, si hay posibilidad por el motivo que sea de que añadas el mismo cliente varias veces, antes de añadirlo deberías recorrer la lista para ver que no está ya.

Se bueno.
__________________
Apuntes Java
Wiki de Programación