A lambda expression is a short block
of code which takes in parameters
and returns a value. Lambda expressions
are similar to methods, but they do
not need a name and they can be
implemented right in the body of a method.
parameter -> expression
To use more than one parameter, wrap them in parentheses:
(parameter1, parameter2) -> expression
Example
Use a lamba expression in the ArrayList's
forEach() method to print every item in the list:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(9);
numbers.add(8);
numbers.add(1);
numbers.forEach( (n) -> { System.out.println(n); } );
}
}
public class TestLambda {
public static void main(String args[]) {
List<String> lowerCaseStringsList = Arrays.asList("a","b","c");
// the :: notation is the lambda expression
// it's the same as the anonymous function s -> s.toUpperCase()
List<String> upperCaseStringsList = lowerCaseStringsList.stream().
map(String::toUpperCase).
collect(Collectors.toList());
}
}
//The:
Runnable r = ()-> System.out.print("Run method");
//is equivalent to:
Runnable r = new Runnable() {
@Override
public void run() {
System.out.print("Run method");
}
};