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

Trabajar con map

Estas en el tema de Trabajar con map en el foro de Java en Foros del Web. Hola, he hecho una lectura de datos que me funciona, pero para que sea más eficaz, quiero hacer un pequeño cambio. Leo el fichero uno ...
  #1 (permalink)  
Antiguo 16/01/2015, 03:17
 
Fecha de Ingreso: enero-2011
Mensajes: 14
Antigüedad: 13 años, 3 meses
Puntos: 0
Trabajar con map

Hola, he hecho una lectura de datos que me funciona, pero para que sea más eficaz, quiero hacer un pequeño cambio.

Leo el fichero uno de la siguiente manera:

Código PHP:
BufferedReader br1 = new BufferedReader(new FileReader (new File ("C:\\DB1.txt")));  

String[] linea,urls;
String linea1,linea2;
         
        while((
linea1=br1.readLine())!=null){
             if (
linea1.trim().length()==0) continue;
             
linea=linea1.split(";");
             
Registro cadena= new Registro(linea);
              
             
//Guardamos todos los registros en un map
             
refs.put(cadena.refcadena);
        }
            
     
br1.close(); 
y a cada linea del primer fichero, le añado un dato que cojo desde el segundo fichero.

Código PHP:
BufferedReader br2 = new BufferedReader(new FileReader (new File ("C:\\DB2.txt"))); 
        while((
linea2=br2.readLine())!=null){
             if (
linea2.trim().length()==0) continue;
                
urls linea2.split(";");
                for (
Registro valor refs.values()) {
                    if(
valor.ref.equals(urls[0])){
                       
valor.setUrl(urls[1]); 
                } 
             }
        }       
             
     
br2.close(); 
Quiero mejorar un poco el código aprovechando que el mapa puede localizar elementos por su clave, de modo que no hay que buscar un elemento, tendría que pedirlo. la idea la tengo clara, pero no sé como aplicarlo.. alguna sugerencia?

Gracias
  #2 (permalink)  
Antiguo 16/01/2015, 03:42
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Trabajar con map

Buenas,

Solo tienes que cambiar:
Código Java:
Ver original
  1. for (Registro valor : refs.values()) {
  2.     if(valor.ref.equals(urls[0])){
  3.         valor.setUrl(urls[1]);  
  4. }

Por
Código Java:
Ver original
  1. refs.put(urls[0], urls[1]);

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 16/01/2015, 03:55
 
Fecha de Ingreso: enero-2011
Mensajes: 14
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Trabajar con map

Me da error, me dice:

String cannot be converted to Registro, y me señala en rojo urls[1]

el mapa tengo definido así:
refs.put(cadena.ref, cadena);

dónde cadena es un objeto de la clase Rregistro
  #4 (permalink)  
Antiguo 16/01/2015, 04:14
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Trabajar con map

Si, perdon. He leido en diagonal y lo interprete mal.

Seria:
Código Java:
Ver original
  1. if (refs.get(urls[0]) != null) {
  2.     Registro valor = (Registro)refs.get(urls[0]);
  3.     valor.setUrl(urls[1]);
  4. }

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 17/01/2015, 06:37
 
Fecha de Ingreso: enero-2011
Mensajes: 14
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Trabajar con map

Muchas gracias

Etiquetas: map, string, valor
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 04:29.