Api Stream - Tensho97/Aprende-a-Aprender GitHub Wiki
Stream se define como una secuencia de elementos que provienen de una fuente que soporta operaciones para el procesamiento de sus datos:
- De forma declarativa usando expresiones lambda.
- Permitiendo el posible encadenamiento de varias operaciones, con lo que se logra tener un código fácil de leer y con un objetivo claro.
- De forma secuencial o paralela (Fork/Join).
Las estructuras que soportan esta nueva API se encuentran en el paquete java.util.stream y en especial, la interface java.util.stream.Stream define un Stream.
Esta API nos permite realizar operaciones sobre colecciones de datos usando el modelo filtro/mapeo/reducción, en el cual se seleccionan los datos que se van a procesar (filtro), se convierten a otro tipo de dato (mapeo) y al final se obtiene el resultado deseado (reducción).
El siguiente ejemplo nos permite visualizar las tres (3) partes que componen un Stream:
- Fuente de información → La lista de transacciones
- Cero o más operaciones intermedias → Se puede apreciar la operación filter y la operación mapToInt, operaciones que serán explicadas más adelante en este mismo artículo.
- Operación terminal que produce un resultado o un efecto sobre los datos → Se puede apreciar la operación sum, la cual se explicará más adelante en este mismo artículo.
List transacciones = ...
int sum = transacciones
.stream()
.filter(t -> t.getProveedor().getCiudad().equals(“Cali”))
.mapToInt(Transaccion::getPrecio)
.sum();
Autor: Richard