
package ejerciciosgenericos;

public class EjerciciosGenericos {

    public static void main(String[] args) {
        System.out.println("----------- GENERICO - STRING -------------");
        Generico<String> genericoString = new Generico<String>("El que a buen árbol se arrima, buena sombrea le cobija");
        System.out.println(genericoString.getObjeto());
        System.out.println(genericoString.getClassGenerico().getName());
        genericoString.setObjeto("Un libro es un tesoro");
        System.out.println(genericoString.getObjeto());
        
        System.out.println("------------ GENERICO - INTEGER -----------");      
        Generico<Integer> genericoInteger = new Generico<Integer>(50);
        System.out.println(genericoInteger.getObjeto());
        System.out.println(genericoInteger.getClassGenerico().getName());  
        genericoInteger.setObjeto(((genericoInteger.getObjeto().intValue()) * 10));
        System.out.println(genericoInteger.getObjeto());
          
        System.out.println("----- GENERICO - ARRAYLIST : STRING -------");
        ArrayListGenerico<String> listaEstadosString = new ArrayListGenerico();
        listaEstadosString.nuevoObjetoALista("España");
        listaEstadosString.nuevoObjetoALista("Portugal");
        listaEstadosString.nuevoObjetoALista("Alemania");
        listaEstadosString.nuevoObjetoALista("Francia");
        listaEstadosString.nuevoObjetoALista("Italia");
        
        System.out.println(listaEstadosString.toString());
         
        System.out.println("----- GENERICO - ARRAYLIST : OBJETOS ------");        
        ArrayListGenerico<Estado> listaEstadosObjeto = new ArrayListGenerico();
        listaEstadosObjeto.nuevoObjetoALista(new Estado(1, "España",   46570000));
        listaEstadosObjeto.nuevoObjetoALista(new Estado(2, "Portugal", 10310000));
        listaEstadosObjeto.nuevoObjetoALista(new Estado(3, "Alemania", 82790000));
        listaEstadosObjeto.nuevoObjetoALista(new Estado(4, "Francia",  67120000));
        listaEstadosObjeto.nuevoObjetoALista(new Estado(5, "Italia",   60590000));

        System.out.println("---- GENERICO - MAP : Integer - String ----");      
        MapGenerico<Integer, String> mapCiudades = new MapGenerico();
        mapCiudades.nuevoParAMap(1,"Madrid");
        mapCiudades.nuevoParAMap(2,"Sevilla");
        mapCiudades.nuevoParAMap(3,"Valencia");
        mapCiudades.nuevoParAMap(4,"Oviedo");
        mapCiudades.nuevoParAMap(5,"Badajoz");
              
        System.out.println(mapCiudades.toString());
        
        Integer claveBuscadaCiudad = 4;
        if (mapCiudades.isClave(claveBuscadaCiudad))
              System.out.println("Buscando por idCiudad: "+claveBuscadaCiudad+" corresponde a : "+mapCiudades.buscarPorClave(claveBuscadaCiudad));
        else
              System.out.println("No existe la ciudad con idCiudad : "+claveBuscadaCiudad);
            
        
        System.out.println("---- GENERICO - MAP : String - Integer ----");      
        MapGenerico<String, Integer> mapEstados = new MapGenerico();
        mapEstados.nuevoParAMap("España", 46570000);
        mapEstados.nuevoParAMap("Portugal", 10310000);
        mapEstados.nuevoParAMap("Alemania", 82790000);
        mapEstados.nuevoParAMap("Francia", 67120000);
        mapEstados.nuevoParAMap("Italia", 60590000);
              
        System.out.println(mapEstados.toString());
        
        String claveBuscadaEstado = "Portugal";
        if (mapEstados.isClave(claveBuscadaEstado))
              System.out.println("Buscando por estado: "+claveBuscadaEstado+" tiene: "+mapEstados.buscarPorClave(claveBuscadaEstado)+" habitantes");
        else
              System.out.println("No existe el estado: "+claveBuscadaEstado);
    }
}
