Java 8 Features: Bi Functional Interfaces Explained

🚀 Java 8 Features Day 4 What is Bi Functional Interfaces in Java? 1️⃣ BiPredicate<T, U> 👉 Takes two input arguments 👉 Returns a boolean value Example Code: import java.util.function.BiPredicate; class Main {   public static void main(String[] args) {     BiPredicate<Float, Float> isValidWeight =         (height, weight) -> weight == height - 100;     if (isValidWeight.test(174.5f, 74.5f)) {       System.out.println("Congrats! You are in correct weight.");     } else {       System.out.println("Sorry! You are not in correct weight.");     }   } } 👉 Use case: Validations involving two values. 2️⃣ BiFunction<T, U, R> 👉 Takes two input arguments 👉 Returns any type (R) Example Code: import java.util.function.BiFunction; import java.util.Base64; class Main {   public static void main(String[] args) {     BiFunction<Long, String, String> tempPassword =         (phoneNumber, email) ->             Base64.getEncoder()                .encodeToString((email + phoneNumber).getBytes());     System.out.println(         tempPassword.apply(9080555678L, "hariv6@gmail")     );   } } 👉 Use case: Transforming two inputs into one result ✅ 3️⃣ BiConsumer<T, U> 👉 Takes two input arguments 👉 Returns nothing (void) 👉 Only consumes data Example Code: import java.util.function.BiConsumer; class Main {   public static void main(String[] args) {     BiConsumer<Float, Double> bonusCalculation =         (experience, salary) -> {           if (experience < 5 && salary <= 100000.0) {             System.out.println("Your bonus is 20%");           } else {             System.out.println("Your bonus is 10%");           }         };     bonusCalculation.accept(4.3f, 70000.0);   } } 👉 Use case: Performing operations like logging, printing, updating records. ❓ Why is there no BiSupplier? Because: 👉 Supplier<T> does not take any input. 👉 It only supplies (returns) a value. 👉 So logically, BiSupplier is not required. ♻️Repost so others can learn and grow together.  🔔 Follow Hariprasath V for daily Java, DSA, and System Design,Springboot,Microservices,Devops,Full Stack resources. ================================================ #java8Features #java8 #LambdaExpressions #Java #SystemDesign #DataStructures #Algorithms #JavaDeveloper #DSA #CodingInterview #TechInterview #SystemDesignInterview #DSAChallenge #60DaysOfDSA #ProblemSolving #CodingJourney #Consistency #LearnByDoing #DataStructures #Algorithms #InterviewPrep #KeepCoding #Productivity #Focus #DreamBig #BackendDevelopment #SoftwareEngineering #JavaInterview #LeetCode #InterviewPrep #DataStructureAndAlgorithms #DesignPatterns #LowLevelDesign #Multithreading #SOLIDPrinciples #RESTAPI #BackendEngineer #CodeInterview #interviewtips #interviewexperience

  • graphical user interface, website

To view or add a comment, sign in

Explore content categories