23.02.2017 Views

Java

Create successful ePaper yourself

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

<strong>Java</strong> 185<br />

Debemos tener en cuenta que esta habilidad de composición de<br />

funcionalidad sumada a las operaciones sobre las colecciones brinda<br />

una gran flexibilidad a la hora de codificar.<br />

Para continuar, sigamos agregando funcionalidades. Ahora vamos<br />

por la conocida operación denominada foldLeft. Esta operación<br />

permite iterar sobre los elementos e ir acumulando resultados en otro<br />

objeto que se va pasando en la iteración.<br />

@Test public void testFoldLeft() {<br />

final List numbers = list(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);<br />

final Fn3 add = new<br />

AFn3() { @Override public Integer f(final<br />

Integer i, final Integer u) {<br />

return i + u;<br />

}};<br />

}<br />

assertEquals(55, numbers.foldLeft(0, add).intValue());<br />

La interfaz para esta operación es:<br />

public interface Foldable {<br />

S foldLeft(final S initialValue, final Fn3 fn);<br />

}<br />

Debemos tener en cuenta que otras operaciones útiles que podemos<br />

definir son filter (que podemos utilizar para filtrar elementos de una<br />

colección), zip (útil cuando necesitamos realizar la ejecución de agrupar<br />

de a pares los elementos de dos colecciones) y for each (para ejecutar<br />

una acción por cada elemento).<br />

Zippable zip(final List list);<br />

void forEach(final A action);<br />

Filterable filter(final P p);<br />

www.FreeLibros.me<br />

www.redusers.com

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

Saved successfully!

Ooh no, something went wrong!