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.

114 Programación I<br />

12.1.9.4.1 Interfaz Comparable<br />

En la clase Gasto, se indica que implementa la interface Comparable y se da código al método<br />

compareTo.<br />

// método compareTo<br />

public int compareTo(java.lang.Object o) {<br />

return this.getMonto() - ((Gasto) o).getMonto();<br />

}<br />

El método compareTo retorna:<br />

0: si el parámetro precede al receptor del mensaje; o<br />

=0: en otro caso.<br />

Si se definió utilizando generics, o sea que la clase implementa Comparable, el<br />

método compareTo queda:<br />

// método compareTo<br />

public int compareTo(Gasto o) {<br />

return this.getMonto() - o.getMonto();<br />

}<br />

12.1.9.4.2 Otro orden<br />

Supongamos que además del orden anterior se solicita otro orden diferente. Para ello dispongo<br />

de la interfaz Comparator que tiene el método compare.<br />

En la clase Casa:<br />

public ArrayList ordenarDecreciente() {<br />

// Usa orden arbitrario, definido en compare() en Comparator<br />

// El criterio por el cual comparar está implementado<br />

// (implements) en la<br />

// clase Criterio Decreciente. El método se llama compare.<br />

//<br />

// El sort lo usa cuando dados dos objetos, deba decidir cual va primero<br />

Collections.sort(this.devolverTodosGastos(), new CriterioDecreciente());<br />

return this.devolverTodosGastos();<br />

}<br />

Una forma es definir una clase auxiliar en la cual se indica el código del método compare.<br />

package gastosCasa;<br />

import java.util.Comparator;<br />

// Clase definida para contener el criterio de comparación<br />

public class CriterioDecreciente implements Comparator{<br />

// Este método es necesario definirlo para establecer el criterio por el<br />

// cual un objeto va antes que otro en la ordenación

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

Saved successfully!

Ooh no, something went wrong!