package Capitulo_7.agenda;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;


public class MiAgenda3 {


    static public void main(String args[]){
       TreeMap<Persona,String> tm = new TreeMap<Persona, String>(new ComparaNombre());
       
       Persona p = new Persona("Felix");
       p.agregaTelefono("Movil", "23423");
       p.agregaTelefono("Casa", "11212");
       
       tm.put(p, "FX");

       p = new Persona("Juan");
       p.agregaTelefono("Trabajo", "456456");
       p.agregaTelefono("Casa", "1434532");

       tm.put(p, "JK");
       
       Set<Persona> ks = tm.keySet();
       for(Persona key:ks)
            key.imprime(); 
       
       System.out.println(tm.keySet().toString());
       System.out.println(tm.toString());
       
       int index = new ArrayList<String>(tm.values()).indexOf("JK");
       System.out.println(tm.keySet().toArray()[index]);

    }
}


class ComparaNombre implements Comparator<Persona>{
    public int compare(Persona arg0, Persona arg1) {
        return arg1.getNombre().compareTo(arg0.getNombre());
    }   
}

class Persona {
    private String Nombre;
    private Map <String, String> telefonos;
 
    public Persona(String unNombre) {
      Nombre = unNombre;
      telefonos = new TreeMap<String, String>();
    }
    
    public void agregaTelefono(String unaDesc, String unTelefono) {
        telefonos.put(unaDesc, unTelefono);
    }
    
    public String getNombre() {
        return Nombre;
    }
    
    void imprime() {
       System.out.println(Nombre);

       if(telefonos.keySet().isEmpty()) return;
       
       for(String a : telefonos.keySet())
           System.out.println("\t" + a + " : " + telefonos.get(a));
    }
    
    @Override
    public String toString() { 
        return " Nombre: " + Nombre ;
    }
}
