Saturday, 6 February 2016

Example of Lambda Expressions and Streams in Java 8

Create a Java Class and your favorite editor and run the below code ---

public static void filter(List<String> names, Predicate condition1, Predicate condition2) {
        //names.forEach(str -> System.out.println("Java 8 ::: "+str));
        names.stream().filter(condition1.and(condition2)).forEach(str -> System.out.println("--- Java 8 ::: "+str));
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
       
        List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);
        IntSummaryStatistics stats = primes.stream().mapToInt((x) -> x).summaryStatistics();
        System.out.println("Java 8 ::: ++ "+stats.getAverage());
        System.out.println("Java 8 ::: ++ "+stats.getCount());
        System.out.println("Java 8 ::: ++ "+stats.getMax());
        System.out.println("Java 8 ::: ++ "+stats.getSum());
       
        List<Integer> numbers = Arrays.asList(9, 10, 3, 4, 7, 3, 4);
        List<Integer> s2Number = numbers.stream().map(i -> i*i).distinct().sorted().collect(Collectors.toList());
        Collections.reverse(s2Number);
         System.out.println(s2Number);
       
        List<String> G7 = Arrays.asList("USA", "Japan", "France", "Germany", "Italy", "U.K.","Canada");
        String G7Countries = G7.stream().map(x -> x.toUpperCase()).collect(Collectors.joining());
        System.out.println(G7Countries);
       
        List<Integer> costBeforeTax = Arrays.asList(100, 200, 300, 400, 500);
        double total = 0.0;
        for (Integer cost : costBeforeTax) {
              double price = cost + .12*cost;
              total = total + price;
            
        }
         System.out.println(total);
        costBeforeTax.stream().map((cost) -> cost + .12*cost).forEach(cost -> System.out.println("Java8 Cost : "+cost));
        double sum  = costBeforeTax.stream().mapToDouble((cost) -> cost + .12*cost).sum();

        System.out.println("java8 : sum : "+sum);
       
        List<String> languages = Arrays.asList("Java", "Scala", "C++", "Haskell", "Lisp");
        Predicate<String> first = s -> ((String) s).startsWith("J");
       
        Predicate<String> second = (p) -> ((String)p).length() > 3;
       
        filter(languages, first, second);
       
       
        List<String> features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API");
        for (String feature : features) {
           System.out.println(feature);
        }
       
        features.forEach(s -> System.out.println("Java8 : "+s));
       
        new Thread(new Runnable() {
            public void run(){
                System.out.println("Before Java 8");
                System.out.println("I m in thread.");
            }
        }).start();
       
        new Thread(() -> {
            System.out.println("After Java 8");
            System.out.println("I m in Java 8 Thread");
        }).start();
    }

No comments:

Post a Comment

Monads in Scala

Monads belongs to Advance Scala   concepts. It  is not a class or a trait; it is a concept. It is an object which covers other object. A Mon...