10.05.2014 Views

programación i - Universidad ORT Uruguay

programación i - Universidad ORT Uruguay

programación i - Universidad ORT Uruguay

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!