Java: How to work with streams

Filter a list and process each element

products.stream()
.filter( p -> p.getCASNumber() != null )
.forEach( p -> System.out.println(p.getProductName()) );

Filter a list and collect the elements

List<Product> productsWithCasNumber = products.stream()
.filter( p -> p.getCASNumber() != null )
.collect( Collectors.loList() );

Transform a list

List<String> productNames = products.stream()
.map( p -> p.getProductName() ) //.map( Product::getProductName )
.collect( Collectors.toList() );

Reduce a list

double maxPrice = products.stream()
.map( p -> p.getProductPrice() ) //.map(Product::getProductPrice)
.reduce( 0.0, (calcValue, currentValue) -> Math.max(calcValue, currentValue) );
//.reduce(0.0, Math::max)

Comments

Popular posts from this blog

Spring JPA : Using Specification with Projection

Chip input using Reactive Form