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

Mapas en Java

Estas en el tema de Mapas en Java en el foro de Java en Foros del Web. Hola, ando teniendo problemas con este tema. Yo lo que quiero hacer es implementar un mapa, <key, value>, pero el map que quiero hacer quiero ...
  #1 (permalink)  
Antiguo 10/08/2008, 23:51
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Mapas en Java

Hola, ando teniendo problemas con este tema.
Yo lo que quiero hacer es implementar un mapa, <key, value>, pero el map que quiero hacer quiero que pueda permitir que haya keys repetidas.

Hacer un diccionario no funciona segun lei, porque no se pueden repetir las keys. Lo que lei que se puede es hacer un mapa de lista. Algo asi :

Map<String, List<Section>> mapa_lista = new HashMap<String,List<Section>>();

Pero no entiendo bien como funciona y no encuentro mucha data al respecto (es esta la solucion o se puede usar otra cosa?). Ademas cuando pongo eso en el Eclipse me dice que Section debe ser una clase o algo asi .No comprendo bien como manejar esto y sus metodos. Alguien sabe algo ? Algun ejemplo sencillo para entenderlo ? no encuentro nada

Doy un ejemplo de los elementos que meteria en lo que quiero hacer :
< key , value > :

"id Software" - "Quake"
"id Software" - "Doom"
"Valve" - "CS"

como veran tengo 2 keys iguales. Por lo que, a la hora de usarlas necesito decirle dame todo lo de "id Software" o dame la 1ra de id Software, o asi... como seria todo esto ? (estoy trabajando en un applet).


Saludos
  #2 (permalink)  
Antiguo 11/08/2008, 00:43
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Mapas en Java

Hola:

Como mencionas, poner una lista sería una posible solución. Para la key "id software" el value asociado sería, por ejemplo, una LinkedList<String> con dos elementos, "Quake" y "Doom".

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 11/08/2008, 02:06
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Mensaje Respuesta: Mapas en Java

Hola,

Tienes que tomar en cuenta que al usar:
Map<String, List<String>> mapa_lista = new HashMap<String,List<String>>();

En el lugar de quedar así :

"id Software" - "Quake"
"id Software" - "Doom"
"Valve" - "CS"

Quedaría así:

"id Software" -> "Quake", "Doom"
"Valve" -> "CS"

Que es exactamente lo mismo que menciona chudiang,
pero te va a facilitar comprender el concepto.

Para obtener la lista de "id Software" :
LinkedList<String> lista = mapa_lista.get("id Software");
En lista tendrías "Quake" y "Doom".

Saludos,

ps:

Tutorial en Inglés
Para comprender Collections (Map/HashMap/LinkedList, etc):
http://java.sun.com/docs/books/tutor...tions/TOC.html
Para comprender Generics (<String>, <Object>, etc):
http://java.sun.com/docs/books/tutor...ics/index.html

Última edición por HackmanC; 11/08/2008 a las 02:15 Razón: fix
  #4 (permalink)  
Antiguo 11/08/2008, 11:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Mapas en Java

Gracias. Lo pude solucionar.

Última edición por razer; 11/08/2008 a las 11:54
  #5 (permalink)  
Antiguo 11/08/2008, 12:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Mapas en Java

Una pregunta ya que estoy..... si quiero editar el value de un key, puedo ?
En mi caso, los values van a ser Listas. Si quiero editar una lista de una respectiva key, como seria?.......salu2
  #6 (permalink)  
Antiguo 11/08/2008, 13:03
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Mapas en Java

Cita:
Iniciado por razer Ver Mensaje
Una pregunta ya que estoy..... si quiero editar el value de un key, puedo ?
En mi caso, los values van a ser Listas. Si quiero editar una lista de una respectiva key, como seria?.......salu2
Hola,

Para obtener la lista de "id Software" :
LinkedList<String> lista = mapa_lista.get("id Software");
En lista tendrías "Quake" y "Doom".

Para agregarle un nuevo valor:
lista.add("Wolfenstein");
En la lista del map de "id Software" tendrías "Quake", "Doom" y "Wolfenstein"

Saludos,
  #7 (permalink)  
Antiguo 11/08/2008, 13:37
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Mapas en Java

Ajap, pero con el LinkedList ese obtengo todas las values de una key.... como hago para recorrer todas las keys para asi adentro ir mostrando los values?
En pocas palabras, recorrer todo el mapa entero.

Última edición por razer; 11/08/2008 a las 13:46
  #8 (permalink)  
Antiguo 11/08/2008, 15:14
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Mapas en Java

Lo pude solucionar con una variable de tipo Iterator, usando sus metodos.
Saludos!!
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 17:06.