The Artima Developer Community
Sponsored Link

Java Buzz Forum
Different ways of collect the result using collect method of Java 8 Stream | Streams in Java 8

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Ram N

Posts: 2777
Nickname: ramram
Registered: Jul, 2014

Ram N is Java Programmer
Different ways of collect the result using collect method of Java 8 Stream | Streams in Java 8 Posted: Oct 11, 2017 7:13 AM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Ram N.
Original Post: Different ways of collect the result using collect method of Java 8 Stream | Streams in Java 8
Feed Title: JAVA EE
Feed URL: http://ramj2ee.blogspot.com/feeds/posts/default?alt=rss
Feed Description: This blog has viedo tutorials and Sample codes related to below Technologies. 1.J2EE 2.Java 3.Spring 4.Hibernate 5.Database 6.Oracle 7.Mysql 8.Design Patterns
Latest Java Buzz Posts
Latest Java Buzz Posts by Ram N
Latest Posts From JAVA EE

Advertisement

Click here to watch in Youtube :
https://www.youtube.com/watch?v=YsYwetn3_vA&list=UUhwKlOVR041tngjerWxVccw

Person.java
enum Gender
{
MALE, FEMALE
}

public class Person
{
private String name;
private String email;
private Gender gender;
private int age;

public Person(String name, String email, Gender gender, int age)
{
super();
this.name = name;
this.email = email;
this.gender = gender;
this.age = age;
}

public String getName()
{
return name;
}

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

public String getEmail()
{
return email;
}

public void setEmail(String email)
{
this.email = email;
}

public Gender getGender()
{
return gender;
}

public void setGender(Gender gender)
{
this.gender = gender;
}

public int getAge()
{
return age;
}

public void setAge(int age)
{
this.age = age;
}

@Override
public String toString()
{
return "Person [name=" + name + "]";
}

}
StreamCollectDemo.java
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;

public class StreamCollectDemo
{
public static void main(String[] args)
{
List<Person> personList = new ArrayList<>();

personList.add(new Person("Alice","alice@gmail.com",Gender.FEMALE, 26));
personList.add(new Person("Bob","bob@gmail.com", Gender.MALE, 32));
personList.add(new Person("Carol","carol@gmail.com",Gender.FEMALE, 23));
personList.add(new Person("David","david@gmail.com", Gender.MALE, 39));
personList.add(new Person("Eric","eric@gmail.com", Gender.MALE, 26));

/*
* The collect() operation accumulates elements in a stream into a
* container such as a collection. It performs mutable reduction
* operation in which the reduced (final) value is a mutable result
* container such as an ArrayList. This method takes a Collector
* implementation that provides useful reduction operations. The
* Collectors class is a common implementation in the JDK. And we are
* going to see how it is used in the following examples.
*
* The following code accumulates emails of the persons into a list
* collection:
*/

List<String> emailList = personList.stream() // Stream<Person>
.map(p -> p.getEmail()) // Stream<String>
.collect(Collectors.toList());

System.out.println("emailList = "+ emailList);

/*
* We can specify exactly which type of collection as the result. For
* example, the following code collects emails into a TreeSet:
*/

Set<String> setEmails = personList.stream() // Stream<Person>
.map(p -> p.getEmail()) // Stream<String>
.collect(Collectors.toCollection(TreeSet::new));

System.out.println("setEmails = "+ setEmails);

/*
* The following code groups the person by gender:
*/

Map<Gender, List<Person>> byGenderMap = personList.stream()
.collect(Collectors.groupingBy(p -> p.getGender()));

System.out.println("Groups by gender = " + byGenderMap);

/*
* The following code accumulates names and concatenates them into
* a String, separated by commas:
*/

String names = personList.stream() //Stream<Person>
.map(p -> p.getName()) // Stream<String>
.collect(Collectors.joining(", "));

System.out.println("names = "+names);

}

}
Output
emailList = [alice@gmail.com, bob@gmail.com, carol@gmail.com, david@gmail.com, eric@gmail.com]
setEmails = [alice@gmail.com, bob@gmail.com, carol@gmail.com, david@gmail.com, eric@gmail.com]
Groups by gender = {FEMALE=[Person [name=Alice], Person [name=Carol]],
MALE=[Person [name=Bob], Person [name=David], Person [name=Eric]]}
names = Alice, Bob, Carol, David, Eric

Refer: 
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html

Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/StreamDemo_diff_way_collect.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/StreamDemo_diff_way_collect

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/17906082b9d83230789adc7b5df551c73ce2b46f/BasicJava/StreamDemo_diff_way_collect/?at=master

See also:
  • All JavaEE Viedos Playlist
  • All JavaEE Viedos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • Read: Different ways of collect the result using collect method of Java 8 Stream | Streams in Java 8

    Topic: Experimenting with Java9 HTTP Client and Process API in JShell Previous Topic   Next Topic Topic: The Serverless Revolution Will Make Us All Developers

    Sponsored Links



    Google
      Web Artima.com   

    Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use