programación i - Universidad ORT Uruguay
programación i - Universidad ORT Uruguay
programación i - Universidad ORT Uruguay
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
122 Programación I<br />
Semana 13<br />
13.1 Orden por dos campos<br />
Supongamos que se desean ordenar los gastos por día y para el mismo día, por nombre. Se<br />
compara primero por día. Si ya es posible establecer el orden relativo entre esos dos elementos<br />
ya está resuelto. Si tienen el mismo día, es necesario comparar los nombres para determinar cuál<br />
va primero.<br />
La forma de realizarlo es estableciendo el criterio de comparación así:<br />
public class CriterioDoble implements Comparator{<br />
}<br />
public int compare(Gasto parm1, Gasto parm2) {<br />
int diferencia = parm1.getDia() - parm2.getDia();<br />
if (diferencia==0) {<br />
diferencia = parm1.getNombre().compareTo(parm2.getNombre());<br />
}<br />
return diferencia;<br />
13.2 Agenda Telefónica: HashMap<br />
Consideremos el siguiente ejemplo: se quiere llevar una agenda telefónica, esto es una lista de<br />
personas con su número telefónico. Si se asume disponible una clase Agenda Telefónica, con<br />
los métodos:<br />
- agregarPersona(String) que permite agregar una persona a la agenda<br />
- darTelefonoDe(String): dado el nombre permite ubicar su teléfono<br />
- estaElNombre(String): para consultar si está cierto nombre en la agenda<br />
- darNombres(), darTelefonos(): iteradores para obtener una lista de nombres o los<br />
teléfonos respectivamente;<br />
- sacarTeléfonoDe(String): para borrar una entrada en la agenda.<br />
se podría utilizar de la siguiente manera:<br />
Agenda Telefonica<br />
package PaqueteAgendaTelefonica;<br />
import java.util.*;<br />
public class PruebaAgenda {<br />
public static void main (String args[]) {<br />
// creo la agenda<br />
AgendaTelefonica agenda;<br />
agenda = new AgendaTelefonica() ;<br />
// agrego varias personas<br />
agenda.agregarPersona("Suzi",3761241);<br />
agenda.agregarPersona("Patricia", 7117765);<br />
agenda.agregarPersona("Irene",1718);<br />
// consultas varias