Java 8 introduced Function Interfaces, Lambda Expressions, and also a lot many utility functions to make use with Lambda's and Streams, you make find these been used very much in all new classes and methods added to Java 8 and later.
In this tutorial, we will take a look at the java.util.Function and java.util.BiFunction Functional Inteface classes,
Java Functional Interface Function
If you go to the Java rt.jar and look at the java.util package you will see the Function.java
@FunctionalInterface
public interface Function<T, R> {
R apply(T t);
}
T – This is to represent the type of input to the function.
R – This is to represent what Type is the return type of the function.
Example 1: Function that takes a String name and returns a String Greeting
public static void main(String[] args) {
Function<String,String> greeting = (name) -> "Hello "+name+"!";
System.out.println(greeting.apply("Sam"));
}
Output:
Hello Sam!
Example 2: Function that takes a Integer and returns a Boolean true if a Even else false
public static void main(String[] args) {
Function<Integer,Boolean> evenOdd = (number) -> {
if (number % 2 == 0) {
return true;
} else {
return false;
}
};
System.out.println(evenOdd.apply(5));
System.out.println(evenOdd.apply(4));
}
Output:
false
true
Java Functional Interface BiFunction
Again, go the java.util package you will see the BiFunction.java
@FunctionalInterface
public interface BiFunction<T, U, R> {
R apply(T t, U u);
}
T – This is to represent the Type of the first input to the function.
U – This is to represent the Type of the second input to the function.
R – This is to represent what Type is the return type of the function.
Example 1: BiFunction that takes in two Integers and returns theirs Sum
BiFunction<Integer,Integer,Integer> getSum = (n1,n2) -> n1 + n2;
System.out.println(getSum.apply(10,20));
Output:
30
Example 2: BiFunction that takes in two Integers and returns theirs multiplied calue
BiFunction<Integer,Integer,Integer> getSum = (n1,n2) -> n1 * n2;
System.out.println(getSum.apply(10,20));
Output:
200
Have Questions? Post them here!
- Create a Zip file using Java Code programmatically
- Eclipse : A java Runtime Environment (JRE) or Java Development kit (JDK) must be available
- How to Sort a LinkedList in Java
- Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver
- How to declare and initialize Array in Java Programming
- [Fix] java: integer number too large compilation error
- Java JDBC Connection with MySQL Driver in VS Code + Troubleshooting
- Reading .xls and .xlsx Excel file using Apache POI Java Library
- IntelliJ: Error: Could not find or load main class, java.lang.ClassNotFoundException
- How to get Client IP address using Java Code Example
- Truncate table using Java JDBC Example
- Struts 2 : There is no Action mapped for namespace [/] and action name [form] associated with context path [/proj]
- How to get file path in Idea IntelliJ IDE
- Java Generics explained with simple definition and examples
- Java SE 8 Update 301 available with various bug fixes and security improvements
- Java: Collect Stream as ArrayList or LinkedList
- Java JDBC Connection with PostgreSQL Driver Example
- How to check if Java main thread is alive
- How to fix Java nio NoSuchFileException wile reading a file
- Java 8+ get Day of the Week Examples with LocalDateTime, DateTime, ZonalDateTime and Instant classes
- Ways to Convert Integer or int to Long in Java
- [Java] How to throws Exception using Functional Interface and Lambda code
- [Fix] Spring Boot: mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
- Java: The value of the local variable string is not used
- Java JDBC: Insert Java 8 LocalDate and Time using PreparedStatement
- Horizontally Center Align
- Android Parsing Data for android-L failed Unsupported major.minor version 51.0 Error - Android
- Mac: Sign in Required We cant upload or download your changes because your cached credentials have expired [Word Excel] - Windows
- How to Add Padding to Android TextView - Android
- Android ListView turns Black or Flickers while Scrolling - Android
- How to Configure GitHub with Eclipse IDE in 2023 - Eclipse
- How to know the MAC address of iPhone/iPad Wifi - iOS
- WhatsApp launches WhatsApp Web to Access Messages over web browser - WhatsApp