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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!