Skip to main content

Posts

Showing posts with the label java.util.function package

Java 8 - Iterating collections and maps with #forEach, Consumer and BiConsumer

Iterating Collections API Java 8 introduced new way of iterating Collections API. It is retrofitted to support #forEach method which accepts Consumer in case of Collection and BiConsumer in case of Map . Consumer Java 8 added introduced new package java.util.function which also includes Consumer interface. It represents the operation which accepts one argument and returns no result. Before Java 8, you would have used for loop, extended for loop and/ or Iterator to iterate over Collections . List < Employee > employees = EmployeeStub . getEmployees(); Iterator < Employee > employeeItr = employees . iterator(); Employee employee; while (employeeItr . hasNext()) { employee = employeeItr . next(); System . out . println(employee); } In Java 8, you can write Consumer and pass the reference to #forEach method for performing operation on every item of Collection . // fetch employees from Stub List < Employee > employees = EmployeeStub . getEmplo

java.util.function package

java.util.function package Java 8 introduced new package and introduced many functional interface. It can be divided into four categories. Predicate Consumer Function Supplier Predicate It represents a boolean-valued function of one argument. It is a functional interface with method test(T) where T is typed. You can see the usage here . Consumer It represents an operation accept(s) argument(s) and return void with side-effects. Java 8 introduced many versions of Consumers. Consumer BiConsumer DoubleConsumer ObjIntConsumer You can see the usage of Consumer here .