Java 8 Lambda Expression Basic Syntax and Examples

Lambda expressions implement an interface with only one single abstract methodl. Such interfaces are called as functional interfaces. Since the interface has only one single method (function), passing across that interface implementation gives the impression of passing across that function. Already existing interfaces in Java such as Runnable, Comparator, ActionListener are already functional interfaces, as they have only one abstract method. We will see how we can use lambda expressions with those existing interfaces.

 

Basic syntax

Basic syntax of lambda expression is:

(input arguments) -> body.

The body may return anything in accordance to the return type of the functional interface. In case, if the body contains more than one statements, those statements can be put within curly braces. 

 

Example: Runnable Interface

Before

<NEED-TO-ADD>

 

With Lambda expression

new Thread( () -> System.out.println("Hello from run.")).start();

 

Example: Comparator

Before

Collections.sort(stringList, new Comparator<String> ()){

@Override

public int compare(String s1,String s2){

    return s1.compareToIgnoreCase(s2);

}

});

 

With Lambda expression:

Comparator <String> c = (s1,s2) ->  return s1.compareToIgnoreCase(s2);

Collections.sort(stringList,c);

 

Example: Swing ActionListener

Before:

button.addActionListener (new ActionListener() ){

public void actionPerformed( ActionEvent event){

  System.out.println(“button clicked”);

}

});

 

With Lambda expression:

button.addActionListener ( event -> System.out.println(“button clicked”);

Note that event is the name of the parameter which can be used within code and its type is inferred from context automatically by Java.

 

TODO

  • Give exampe for Callable (Single line and multi-line)

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)