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, EricRefer:
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:
No comments:
Post a Comment