Wednesday, September 13, 2017

java 8 Simple example, Stream , BiFunction, Sorting Using comparator and streams


This post will explain how to sort the list by name using Comparator and java 8 Stream.

usage of BiFunction

package com.siva;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.function.BiFunction;
import java.util.stream.Stream;

public class TestJava8Example {
 
 public static void main(String[] args) {
  
  //Usage of BiFunction
  
  BiFunction add = (a, b) -> a + b;
  System.out.println("Addition of two values["+add.apply(20, 30) +"]");
  
  //usage of stream 
  
  List arrayList = new ArrayList();
  Person p = new Person();
  p.setName("siva");
  p.setAge(32);
  arrayList.add(p);
  Person p1 = new Person();
  p1.setName("kumar");
  p1.setAge(33);
  arrayList.add(p1);
  
  Person p2 = new Person();
  p2.setName("raju");
  p2.setAge(33);
  arrayList.add(p2);
  
  Person p3 = new Person();
  p3.setName("jatin");
  p3.setAge(2);
  arrayList.add(p3);
 
  Stream stream = arrayList.stream();
  stream.forEach(x -> System.out.println("Name: [" + x.getName()+"] Age ["+x.getAge()+"]"));
  
  
  //Sort By name Using comparator
  Comparator byPersonName = (Person p4, Person p5) -> p4.getName().compareTo(
              p5.getName());
  Stream sorted = arrayList.stream().sorted(byPersonName);
  sorted.forEach(e -> System.out.println("sorted Name: [" + e.getName()+"] Age ["+e.getAge()+"]"));
  
  
 }
 

}




output

Addition of two values[50]
Name: [siva] Age [32]
Name: [kumar] Age [33]
Name: [raju] Age [33]
Name: [jatin] Age [2]
sorted Name: [jatin] Age [2]
sorted Name: [kumar] Age [33]
sorted Name: [raju] Age [33]
sorted Name: [siva] Age [32]


Getting Started With Jboss Drools, Simple Drools program with eclipse maven and java


This post will explain , how to work with Jboss Drools.

Step 1: Open eclipse and install Drools plugin through Market place.
Help - Eclipse Marketplace- search for drools and install the same.
Step 2: Create a new Maven Project and add below code snippet in pom.xml

//created on: 7 Sep, 2017
package src.main.resources.rules
import com.sample.*;

//list any import classes here.



rule "We have an Best Cricketer"
    salience 10
    when
    then
        System.out.println("We have an Best Cricketer");
end

rule "Cricket Lives"
    salience 10
        when
        then
            System.out.println("Hurrah!!! Cricket Lives");
end

rule "Hello World"
    when
        Cricketer( name == "sachin" )
    then
        System.out.println( "Hello sachin" );
        end


rule "Cricket Score above 50"
    when
      $cricketerDetails : Cricketer( score >= 50 )   
    then
        System.out.println( "I'm best bat's man , my name is[ " + $cricketerDetails.getName() + "]and my score is["+$cricketerDetails.getScore()+"]");
        
  
end


rule "Cricket Score below 50"
      when
      $cricketerDetails : Cricketer( score < 50 )   
    then
        System.out.println( "I'm not best bat's man , my name is[ " + $cricketerDetails.getName() + "]and my score is["+$cricketerDetails.getScore()+"]");
end



Step 3: Write a Simple Pojo Java class.
package com.sample;

public class Cricketer {
    private String name;
     private boolean honest;
     private int score;

     public Cricketer(){
      
     }
     public Cricketer(String name, boolean honest,int score){
      this.name = name;
      this.honest = honest;
      this.score = score;
     }
  public String getName() {
   return name;
  }

  public void setName(String name) {
   this.name = name;
  }

  public boolean isHonest() {
   return honest;
  }

  public void setHonest(boolean honest) {
   this.honest = honest;
  }
  public int getScore() {
   return score;
  }
  public void setScore(int score) {
   this.score = score;
  }

}

Step 4: Now Write a Test java class to execute the drool file.
package com.sample;

import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;

public class BestCricketer {
 public static void main(String[] args) {
   KieServices ks = KieServices.Factory.get();
      KieContainer kContainer = ks.getKieClasspathContainer();
      KieSession ksession = kContainer.newKieSession("ksession-rules");
      Cricketer sachin = new Cricketer("sachin", true,70);

      Cricketer dravid = new Cricketer("dravid", true,55);

      Cricketer rohan = new Cricketer("rohan", true,100);

      Cricketer ajay = new Cricketer("ajay", true,40);

          

      ksession.insert( sachin );

      ksession.insert( dravid );

      ksession.insert( rohan );

      ksession.insert( ajay );


      ksession.fireAllRules();
 }

}

Step 5: Output could be like below
We have an Best Cricketer
Hurrah!!! Cricket Lives
Hello sachin
I'm best bat's man , my name is[ rohan]and my score is[100]
I'm best bat's man , my name is[ dravid]and my score is[55]
I'm best bat's man , my name is[ sachin]and my score is[70]
I'm not best bat's man , my name is[ ajay]and my score is[40]
More information about droolsMore Information on drools Thanks for viewing this post

Contact Form

Name

Email *

Message *