<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: RajeshAbhimanyu</title>
    <description>The latest articles on Forem by RajeshAbhimanyu (@rajeshjaava).</description>
    <link>https://forem.com/rajeshjaava</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F333951%2F0ca9b1b1-fc5e-4c13-a30a-2d1a21817e24.jpeg</url>
      <title>Forem: RajeshAbhimanyu</title>
      <link>https://forem.com/rajeshjaava</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rajeshjaava"/>
    <language>en</language>
    <item>
      <title>Java 8 Streams</title>
      <dc:creator>RajeshAbhimanyu</dc:creator>
      <pubDate>Tue, 11 Feb 2020 12:06:00 +0000</pubDate>
      <link>https://forem.com/rajeshjaava/java-8-streams-1kde</link>
      <guid>https://forem.com/rajeshjaava/java-8-streams-1kde</guid>
      <description>&lt;p&gt;Streams are very basic in java 8 features . Below is my example where I'm going to cover different API methods .&lt;/p&gt;

&lt;p&gt;public class StreamBuilders {&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt; public static void main(String[] args){
     List&amp;lt;Integer&amp;gt; list = new ArrayList&amp;lt;Integer&amp;gt;();
     for(int i = 1; i&amp;lt; 10; i++){
         list.add(i);
     }
     Stream&amp;lt;Integer&amp;gt; stream = list.stream();
     // stream count 
        long count=list.stream().count();
    //limit 
        System.out.println("fileter value :"+   list.stream().filter(i-&amp;gt;i&amp;gt;5).count());
        System.out.println("count is "+count);
     List&amp;lt;Integer&amp;gt; evenNumbersList = stream.filter(i -&amp;gt; i%2 == 0).collect(Collectors.toList());
     System.out.print(evenNumbersList);
    // filter operations 
    List&amp;lt;String&amp;gt; nameList = Arrays.asList("Ram", "Amit", "Ashok", "Manish", "Rajat");
    nameList.stream().filter(n-&amp;gt;n.startsWith("A")).collect(Collectors.toList()).forEach(System.out::println);

    nameList.stream().filter(n -&amp;gt; !n.startsWith("A")).collect(Collectors.toList()).forEach(System.out::println);
//map
list.stream().map(n-&amp;gt;n*2).filter(n-&amp;gt;n&amp;gt;10).forEach(System.out::println);

//complex operations
List&amp;lt;Person&amp;gt; persons =
Arrays.asList(
    new Person("Max", 18,"10000","computers"),
    new Person("Peter", 23,"15000","maths"),
    new Person("Pamela", 23,"17000","computers"),
    new Person("David", 12,"10000","physics"));
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;// grouping the objects with age &lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;List&amp;lt;Person&amp;gt;p1= persons.stream().filter(n-&amp;gt;n.name.startsWith("P")).collect(Collectors.toList());
System.out.println(p1);
Map&amp;lt;Integer,List&amp;lt;Person&amp;gt;&amp;gt; personWithGroupBy=persons.stream().collect(Collectors.groupingBy(p-&amp;gt;p.age));
personWithGroupBy.forEach((age,p)-&amp;gt;System.out.format("age %s: %s\n", age, p));
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;//grouping the persons with department &lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Map&amp;lt;String,List&amp;lt;Person&amp;gt;&amp;gt; personsWithGroupByDept=persons.stream().collect(Collectors.groupingBy(Person::getDept));
personsWithGroupByDept.forEach((dept,p)-&amp;gt;System.out.println(" dept : "+dept+"  "+p));
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;// grouping the persons with salary &lt;br&gt;
    Map&amp;gt; personWithSalary= persons.stream().collect(Collectors.groupingBy(p-&amp;gt;p.salary));&lt;br&gt;
    personWithSalary.forEach((salary,p)-&amp;gt;System.out.println("salary :"+salary+"  "+p));&lt;/p&gt;

&lt;p&gt;Map&amp;gt; personWithDept=persons.stream().collect(Collectors.groupingBy(p-&amp;gt;p.dept));&lt;br&gt;
personWithDept.forEach((dept,p)-&amp;gt;System.out.println("dept : "+dept+ " "+p));&lt;/p&gt;

&lt;p&gt;//sorting persons based on person name&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;persons.sort(Comparator.comparing(p-&amp;gt;p.name));
    System.out.println("sorted list "+persons);
persons.sort(Comparator.comparing(p-&amp;gt;p.dept));
System.out.println("sorted with dept "+persons);

  }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;class Person {&lt;br&gt;
     public String getName() {&lt;br&gt;
        return name;&lt;br&gt;
    }&lt;br&gt;
    public void setName(String name) {&lt;br&gt;
        this.name = name;&lt;br&gt;
    }&lt;br&gt;
    public int getAge() {&lt;br&gt;
        return age;&lt;br&gt;
    }&lt;br&gt;
    public void setAge(int age) {&lt;br&gt;
        this.age = age;&lt;br&gt;
    }&lt;br&gt;
    public String getSalary() {&lt;br&gt;
        return salary;&lt;br&gt;
    }&lt;br&gt;
    public void setSalary(String salary) {&lt;br&gt;
        this.salary = salary;&lt;br&gt;
    }&lt;br&gt;
    public String getDept() {&lt;br&gt;
        return dept;&lt;br&gt;
    }&lt;br&gt;
    public void setDept(String dept) {&lt;br&gt;
        this.dept = dept;&lt;br&gt;
    }&lt;br&gt;
    String name;&lt;br&gt;
        int age;&lt;br&gt;
        String salary;&lt;br&gt;
        String dept;&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Person(String name, int age,String salary,String dept) {
    this.name = name;
    this.age = age;
    this.salary=salary;
    this.dept=dept;
}

@Override
public String toString() {
    return name +" "+salary+" " +dept+" "+age;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;/*&lt;/p&gt;

&lt;p&gt;out put :&lt;br&gt;
c:\rajesh\MicroServices\Java8Practice&amp;gt;java StreamBuilders&lt;br&gt;
fileter value :4&lt;br&gt;
count is 9&lt;br&gt;
[2, 4, 6, 8]Amit&lt;br&gt;
Ashok&lt;br&gt;
Ram&lt;br&gt;
Manish&lt;br&gt;
Rajat&lt;br&gt;
12&lt;br&gt;
14&lt;br&gt;
16&lt;br&gt;
18&lt;br&gt;
[Peter 15000 maths 23, Pamela 17000 computers 23]&lt;br&gt;
age 18: [Max 10000 computers 18]&lt;br&gt;
age 23: [Peter 15000 maths 23, Pamela 17000 computers 23]&lt;br&gt;
age 12: [David 10000 physics 12]&lt;br&gt;
 dept : maths  [Peter 15000 maths 23]&lt;br&gt;
 dept : physics  [David 10000 physics 12]&lt;br&gt;
 dept : computers  [Max 10000 computers 18, Pamela 17000 computers 23]&lt;br&gt;
salary :17000  [Pamela 17000 computers 23]&lt;br&gt;
salary :15000  [Peter 15000 maths 23]&lt;br&gt;
salary :10000  [Max 10000 computers 18, David 10000 physics 12]&lt;br&gt;
dept : maths [Peter 15000 maths 23]&lt;br&gt;
dept : physics [David 10000 physics 12]&lt;br&gt;
dept : computers [Max 10000 computers 18, Pamela 17000 computers 23]&lt;br&gt;
sorted list [David 10000 physics 12, Max 10000 computers 18, Pamela 17000 computers 23, Peter 15000 maths 23]&lt;br&gt;
sorted with dept [Max 10000 computers 18, Pamela 17000 computers 23, Peter 15000 maths 23, David 10000 physics 12]&lt;/p&gt;

&lt;p&gt;*/&lt;/p&gt;

</description>
      <category>java</category>
    </item>
  </channel>
</rss>
