Java 8 Lambda Expressions | Code Factory


Donate : Link

Medium Blog : Link

Applications : Link


Lambda expression is a new and important feature of Java which was included in Java SE 8.
Lambda expression facilitates functional programming, and simplifies the development a lot.

Syntax

(Arguments / parameters) -> {Body}

Java lambda expression is consisted of three components.

1) Argument / Parameters: It can be empty or non-empty as well.
2) Arrow-token: It is used to link arguments-list and body of expression.
3) Body: It contains expressions and statements for lambda expression.

Java Example without Lambda Expression

interface Drawable {
	public void draw();
}

public class Main {
	public static void main(String[] args) {
		int width = 10;

		// without lambda, Drawable implementation using anonymous class
		Drawable d = new Drawable() {
			public void draw() {
				System.out.println("Drawing " + width);
			}
		};
		d.draw();
	}
}

Output : 

Drawing 10

Java Example with Lambda Expression

@FunctionalInterface
// It is optional
interface Drawable {
	public void draw();
}

public class Main {
	public static void main(String[] args) {
		int width = 10;

		// with lambda
		Drawable d2 = () -> {
			System.out.println("Drawing " + width);
		};
		d2.draw();
	}
}

Output :

Drawing 10

Java Lambda Expression Example: No Parameter

interface Sayable {
	public String say();
}

public class Main {
	public static void main(String[] args) {
		Sayable s = () -> {
			return "I have nothing to say.";
		};
		System.out.println(s.say());
	}
}

Output :

I have nothing to say.

Java Lambda Expression Example: Single Parameter

interface Sayable {
	public String say(String name);
}

public class Main {
	public static void main(String[] args) {

		// Lambda expression with single parameter.
		Sayable s1 = (name) -> {
			return "Hello, " + name;
		};
		System.out.println(s1.say("Code"));

		// You can omit function parentheses
		Sayable s2 = name -> {
			return "Hello, " + name;
		};
		System.out.println(s2.say("Factory"));
	}
}

Output :

Hello, Code
Hello, Factory

Java Lambda Expression Example: Multiple Parameters

interface Addable {
	int add(int a, int b);
}

public class Main {
	public static void main(String[] args) {

		// Multiple parameters in lambda expression
		Addable ad1 = (a, b) -> (a + b);
		System.out.println(ad1.add(10, 20));

		// Multiple parameters with data type in lambda expression
		Addable ad2 = (int a, int b) -> (a + b);
		System.out.println(ad2.add(100, 200));
	}
}

Output :

30
300

Java Lambda Expression Example: Foreach Loop

public class Main {
	public static void main(String[] args) {

		List<string> list = new ArrayList<string>();
		list.add("Code");
		list.add("Factory");

		list.forEach((n) -> System.out.println(n));
	}
}

Output :

Code
Factory

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s