DEV Community

Jerome Ryan Villamor
Jerome Ryan Villamor

Posted on

Lambda Expression

Lambda expression is a new feature that created in Java 8. It provides a clean and concise way to implement one method interface aka @FunctionalInterface. You are maybe familiar on using Runnable or Comparator class. Implementing these classes, requires you to create a new class or anonymous class. Luckily lambda is existed thus removing the verbosity of the Java language.

Say we want to sort a list of names. We can use Collections.sort() method and implement an anonymous class of Comparator.

List<String> names = Arrays.asList("Jerome", "Steve", "Cathy", "Lara");

Collections.sort(names, new Comparator<String>() {
    @Override
    public int compare(String a, String b) {
        return b.compareTo(a);
    }
});
Enter fullscreen mode Exit fullscreen mode

We can shorten the code above using lambda expression.

Collections.sort(names, (String a, String b) -> {
    return b.compareTo(a);
});
Enter fullscreen mode Exit fullscreen mode

Heck, we can even make it shorter. If it is just one liner method, we can omit the braces and return keyword.

Collections.sort(names, (a, b) -> b.compareTo(a));
Enter fullscreen mode Exit fullscreen mode

Sweet! Lambda expression not only make our code readable but also removes the noise from it, giving us more focus in the behavior part of our code.

Top comments (0)