Wednesday, May 28, 2014

JAVA 8 :: Lambda Expressions

Lambda Expressions

"Lambda expressions are a new and important feature included in Java SE 8. They provide a clear and concise way to represent one method interface using an expression." as defined by oracle

And how it will represent it?!

To make it clear lets go through the following example:

We Are looping over array list of users searching for users with > 30 ages.

Old Java Way:
  private static void oldJavaWay() {
    List<User> olderUsers = new ArrayList<User>();

    for (User u : users) {
      if (u.age > 30) {
        olderUsers.add(u);
      }
    }

    printListNewWay("Old way older users", olderUsers);
  }
New Java Way Using Lambda:
private static void newJavaWay() {
    List<User> olderUsers = users.stream().filter(u -> u.age > 30).collect(Collectors.toList());
    printListNewWay("New way older users", olderUsers);
  }
What happened up there!!!!
Using lambda 6 line of code become only 1 :)
streams the user array list, filter the list and return it as new array list :D.
Lambda expressions and I will concentrate on the filter it goes like that 
filter((What???) user -> (How???) user.age > 30);