you can see performance:
public static void main(String[] args) {
System.out.println("Predicate using Lambda");
System.out.println(System.currentTimeMillis());
doThis();
System.out.println(System.currentTimeMillis());
System.out.println("Predicate using Without Lambda");
System.out.println(System.currentTimeMillis());
doThisWithoutLambda();
System.out.println(System.currentTimeMillis());
System.out.println("Predicate using Lambda 100000");
System.out.println(System.currentTimeMillis());
for (int i = 0; i < 100000; i++) {
doThis();
}
System.out.println(System.currentTimeMillis());
System.out.println("Predicate using Without Lambda 100000");
System.out.println(System.currentTimeMillis());
for (int i = 0; i < 100000; i++) {
doThisWithoutLambda();
}
System.out.println(System.currentTimeMillis());
}
public static void doThis() {
Predicate<String> p = (arg) -> true;
}
public static void doThisWithoutLambda() {
Predicate<String> p = new Predicate<String>() {
@Override
public boolean evaluate(String object) {
return true;
}
};
}
Output :
Predicate using Lambda
1551087600419
1551087600491
Predicate using Without Lambda
1551087600491
1551087600492
Predicate using Lambda 100000
1551087600492
1551087600496
Predicate using Without Lambda 100000
1551087600496
1551087600500
Java lambdas 20 times slower than anonymous classes