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.

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 />

}

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

Saved successfully!

Ooh no, something went wrong!