programación i - Universidad ORT Uruguay
programación i - Universidad ORT Uruguay
programación i - Universidad ORT Uruguay
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Programación I 111<br />
12.1.8 Búsqueda<br />
Se desea saber si está ingresado un gasto de un monto dado. Se puede hacer una búsqueda<br />
secuencial por monto, que devuelve true si encuentra un gasto del monto dado.<br />
Así el código podría ser:<br />
// VERSION 1: recorre con Iteración<br />
// Busca un objeto Gasto del monto indicado<br />
public boolean estaElGasto(int unMonto) {<br />
Gasto unG;<br />
unG = new Gasto();<br />
unG.setMonto(unMonto);<br />
Iterator e = this.devolverTodosGastos().iterator();<br />
boolean esta = false;<br />
while (e.hasNext() && !esta) {<br />
Gasto g = e.next();<br />
if (g.equals(unG)) {<br />
esta = true;<br />
}<br />
}<br />
return esta;<br />
}<br />
Se creó un objeto de la clase Gasto, el cual se inicializó con el monto buscado. Se utiliza el<br />
método equals en Gasto, por lo cual hay que redefinirlo. El método equals está definido en<br />
Object y es el método que se utiliza para determinar si se es igual a otro objeto.<br />
@Override<br />
public boolean equals(Object parm1) {<br />
// Es necesario hacer cast porque el parámetro es Object<br />
return this.getMonto() == ((Gasto) parm1).getMonto();<br />
}<br />
12.1.8.1 Otra versión de búsqueda (contains)<br />
Se utiliza el método contains que está definido en ArrayList. Este método chequea si hay algún<br />
objeto igual (equals) al que estoy buscando.<br />
// VERSION 2: usa Contains<br />
// Busca un objeto Gasto del monto indicado<br />
public boolean estaElGasto(int unMonto) {<br />
Gasto unG;<br />
// creo un objeto Gasto, similar al que busco<br />
unG = new Gasto();<br />
unG.setMonto(unMonto);<br />
// para comparar, internamente usa el método equals de Gasto<br />
return (this.devolverTodosGastos().contains(unG));<br />
}