Click here to watch in Youtube : https://www.youtube.com/watch?v=ruVGaln6rJs&list=UUhwKlOVR041tngjerWxVccwStudent.javaimport java.util.HashSet;
import java.util.Set;
public class Student
{
private String name;
private Set<String> bookSet;
public void addBook(String bookName)
{
if (this.bookSet == null)
{
this.bookSet = new HashSet<>();
}
this.bookSet.add(bookName);
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Set<String> getBookSet()
{
return bookSet;
}
public void setBookSet(Set<String> bookSet)
{
this.bookSet = bookSet;
}
}
FlatMapDemo1.javaimport java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class FlatMapDemo1
{
public static void main(String[] args)
{
Student student1 = new Student();
student1.setName("Peter");
student1.addBook("Java in Action");
student1.addBook("Spring in Action");
student1.addBook("Ruby in Action");
Student student2 = new Student();
student2.setName("John");
student2.addBook("Java in Action");
student2.addBook("Learning Java Script");
List<Student> studentList = new ArrayList<>();
studentList.add(student1);
studentList.add(student2);
/*
* Stream<Set<String>>
*/
Stream<Set<String>> setStream = studentList.stream()
.map(student -> student.getBookSet());
/*
* Stream<Set<String>> to Stream<String>
*/
Stream<String> stringStream = setStream // Stream<Set<String>>
.flatMap(student -> student.stream()); // Stream<String>
List<String> bookList = stringStream.distinct()
.collect(Collectors.toList());
bookList.forEach(bookName -> System.out.println(bookName));
}
}
OutputRuby in Action
Java in Action
Spring in Action
Learning Java Script
FlatMapDemo2.javaimport java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class FlatMapDemo2
{
public static void main(String[] args)
{
Student student1 = new Student();
student1.setName("Peter");
student1.addBook("Java in Action");
student1.addBook("Spring in Action");
student1.addBook("Ruby in Action");
Student student2 = new Student();
student2.setName("John");
student2.addBook("Java in Action");
student2.addBook("Learning Java Script");
List<Student> studentList = new ArrayList<>();
studentList.add(student1);
studentList.add(student2);
List<String> bookList = studentList.stream()
.map(student -> student.getBookSet()) // Stream<Set<String>>
.flatMap(student -> student.stream()) // Stream<String>
.distinct().collect(Collectors.toList());
bookList.forEach(bookName -> System.out.println(bookName));
}
}
OutputRuby in Action
Java in Action
Spring in Action
Learning Java Script
Click the below link to download the code:https://sites.google.com/site/ramj2eev1/home/javabasics/StreamDemo_flatmap_streamofset.zip?attredirects=0&d=1Github Link:https://github.com/ramram43210/Java/tree/master/BasicJava/StreamDemo_flatmap_streamofsetBitbucket Link:https://bitbucket.org/ramram43210/java/src/53e39342c1c41555c6e548783b3cf96ab7bd9ee6/BasicJava/StreamDemo_flatmap_streamofset/?at=masterSee also: All JavaEE Viedos PlaylistAll JavaEE ViedosAll JAVA EE LinksServlets TutorialAll Design Patterns LinksJDBC TutorialJava Collection Framework TutorialJAVA TutorialKids Tutorial