Java 8 - Recopilar y mezclar listas o transmitir

Java 8 - Recopilar y mezclar listas o transmitir

En este breve byte, veremos cómo puede recopilar y mezclar una lista en Java, utilizando la API funcional y emparejada con el collectingAndThen() coleccionista.

Consejo: Si quieres saber más sobre collectingAndThen() - lea nuestra información detallada "Guía de coleccionistas de Java 8: recopilar y luego ()"!

Recopilar y barajar una lista en Java

Al recopilar un flujo en una lista (transmitido desde un Java Collection) - puedes decidir mezclarlo. Usar la API funcional de Java 8: trabajar con flujos es eficiente y simple.

Un método intuitivo para usar aquí es collectingAndThen() que te permite collect() A Stream luego ejecute una función anónima en el resultado:

public class Shuffle {
    private final Stream<?> stream;
    
    public List<?> getList() {
        return stream.collect(
            collectingAndThen(
                toList(),
                l -> {
                    Collections.shuffle(l);
                    return l;
                }
            )
        );
    }    
}

Aquí hemos recopilado la corriente en un Listel cual es un operación terminal (el final del flujo). Luego, esta lista se transmite nuevamente, utilizando la central Collections.shuffle() método, que acepta cualquier válido Collection y mezcla en el sitio.

Puede probar el método y afirmar el resultado correcto con:

@Test
public void shouldShuffleList() {
    Shuffle shuffle = new Shuffle(Stream.of(1,2,3));
    List<?> list = shuffle.getList();
    
    assertNotEquals("[1, 2, 3]", list.toString());
}

Conclusión

En este breve byte, analizamos cómo puede recopilar y mezclar una lista o transmitir en Java 8+.

Si quieres conocer otros artículos parecidos a Java 8 - Recopilar y mezclar listas o transmitir puedes visitar la categoría Código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas