Java Lambda Expressions

Sort by

recency

|

175 Discussions

|

  • + 0 comments
    import java.io.*;
    import java.util.*;
    interface PerformOperation {
     boolean check(int a);
    }
    class MyMath {
     public static boolean checker(PerformOperation p, int num) {
      return p.check(num);
     }
    
     public static PerformOperation isOdd() {
        return i -> {
          return i % 2 != 0 ? true : false;
        };
     }
    
     public PerformOperation isPrime() {
        return i -> {
          if (i == 2) return true;
          if (i <= 1 || i % 2 == 0) return false;
          
          int numberSqrt = (int)Math.sqrt(i);
    
          for (int j=3; j<=numberSqrt; j+=2) {
            if (i % j == 0) return false;
          }
          return true;
        };
     }
    
     public static PerformOperation isPalindrome() {
        return i -> {
          String numberStr = String.valueOf(i);
          String reversedStr = "";
          
          for (int j=numberStr.length()-1; j>=0; j--) {
            reversedStr += numberStr.charAt(j);
          }
    
          return numberStr.equals(reversedStr);
        }; 
     }
    }
    
    public class Solution {
    
     public static void main(String[] args) throws IOException {
      MyMath ob = new MyMath();
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      int T = Integer.parseInt(br.readLine());
      PerformOperation op;
      boolean ret = false;
      String ans = null;
      while (T--> 0) {
       String s = br.readLine().trim();
       StringTokenizer st = new StringTokenizer(s);
       int ch = Integer.parseInt(st.nextToken());
       int num = Integer.parseInt(st.nextToken());
       if (ch == 1) {
        op = ob.isOdd();
        ret = ob.checker(op, num);
        ans = (ret) ? "ODD" : "EVEN";
       } else if (ch == 2) {
        op = ob.isPrime();
        ret = ob.checker(op, num);
        ans = (ret) ? "PRIME" : "COMPOSITE";
       } else if (ch == 3) {
        op = ob.isPalindrome();
        ret = ob.checker(op, num);
        ans = (ret) ? "PALINDROME" : "NOT PALINDROME";
    
       }
       System.out.println(ans);
      }
     }
    }
    
  • + 0 comments

    public static PerformOperation isOdd() { return (num) -> num%2!=0; }

    public static PerformOperation isPrime() { return (num) -> java.math.BigInteger.valueOf(num).isProbablePrime(100); }

    public static PerformOperation isPalindrome() { return num -> num == reverseNum(num); }

    private static int reverseNum(int num) { int result = 0; while(num > 0) { int val = num%10; result = (result * 10) + val; num = num/10; } return result; }

  • + 0 comments

    Here is Java Lambda Expressions solution in Java - https://programmingoneonone.com/hackerrank-java-lambda-expressions-problem-solution.html

  • + 1 comment

    Java 8 Solution:-

    import java.io.*;
    import java.util.*;
    
    interface PerformOperation {
        boolean check(int a);
    }
    
    class MyMath {
        public static boolean checker(PerformOperation p, int num) {
            return p.check(num);
        }
    
        public PerformOperation isOdd() {
            return a -> a % 2 != 0;
        }
    
        public PerformOperation isPrime() {
            return a -> {
                if (a <= 1)
                    return false;
                if (a == 2 || a == 3)
                    return true;
    
                if (a % 2 == 0 || a % 3 == 0)
                    return false;
    
                for (int i = 5; i <= Math.sqrt(a); i = i + 6)
                    if (a % i == 0 || a % (i + 2) == 0)
                        return false;
                return true;
    
            };
        }
    
        public PerformOperation isPalindrome() {
    
            return a -> {
                String s = "" + a;
                int i = 0, j = s.length() - 1;
    
                while (i < j) {
                    if (s.charAt(i) != s.charAt(j)) {
                        return false;
                    }
                    i++;
                    j--;
                }
                return true;
            };
        }
    
    
    }
    
    
    // Write your code here
    
    public class Solution {
    
        public static void main(String[] args) throws IOException {
            MyMath ob = new MyMath();
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int T = Integer.parseInt(br.readLine());
            PerformOperation op;
            boolean ret = false;
            String ans = null;
            while (T-- > 0) {
                String s = br.readLine().trim();
                StringTokenizer st = new StringTokenizer(s);
                int ch = Integer.parseInt(st.nextToken());
                int num = Integer.parseInt(st.nextToken());
                if (ch == 1) {
                    op = ob.isOdd();
                    ret = ob.checker(op, num);
                    ans = (ret) ? "ODD" : "EVEN";
                } else if (ch == 2) {
                    op = ob.isPrime();
                    ret = ob.checker(op, num);
                    ans = (ret) ? "PRIME" : "COMPOSITE";
                } else if (ch == 3) {
                    op = ob.isPalindrome();
                    ret = ob.checker(op, num);
                    ans = (ret) ? "PALINDROME" : "NOT PALINDROME";
    
                }
                System.out.println(ans);
            }
        }
    }
    
  • + 0 comments

    My solution:

    interface Predicate{

    boolean test(int a);
    

    } public class Solution {

    public static void main(String[] args) {
    
        Scanner scan = new Scanner(System.in);
        int full = scan.nextInt();
        while(full--> 0){
            int code = scan.nextInt();
            int number = scan.nextInt();
            if (code==1){
                boolean a = op(n-> isOdd(n), number);
            System.out.println(a==true?"EVEN":"ODD");
            }else if(code==2){
                   boolean a = op(n-> isPrime(n), number);
            System.out.println(a==true?"PRIME":"COMPOSITE");
            }else{
                   boolean a = op(n-> isPalindrome(n), number);
            System.out.println(a==true?"PALINDROME":"NOT PALINDROME");
            }
        }
    }
    static boolean op(Predicate<Integer> predi, int number) {
        return predi.test(number);
    
    }
    static boolean isPrime(int number) {
        for(int i=2;i<(int)Math.sqrt(number);i++){
            if(number%i==0) return false;
        }
        return true;
    }
    static boolean isPalindrome(int number) {
        String c = ""+number;
        StringBuilder b = new StringBuilder(c).reverse();
        int d = Integer.parseInt(b.toString());
        return number==d;
    }
    
    static boolean isOdd(int number) {
        return number%2==0;
    }
    

    }