Click here to watch in Youtube : https://www.youtube.com/watch?v=XKIG-i_2BVE&list=UUhwKlOVR041tngjerWxVccwPerson.javaenum 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 + "]";
}
}
StreamReduceDemo1.javaimport java.util.ArrayList;
import java.util.List;
import java.util.Optional;
public class StreamReduceDemo1
{
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));
/*
*
* Version #1: Optional<T> reduce(BinaryOperator<T> accumulator) - This
* method performs a reduction on the elements of the stream, using an
* associative accumulation function, and returns an Optional object
* describing the reduced value.
*
* For example, the following code accumulates names of all persons into
* a String:
*/
Optional<String> optional = personList.stream().map(p -> p.getName())
.reduce((name1, name2) -> name1 + ", " + name2);
if (optional.isPresent())
{
String names = optional.get();
System.out.println(names);
}
}
}
OutputAlice, Bob, Carol, David, Eric
StreamReduceDemo2.javaimport java.util.Arrays;
public class StreamReduceDemo2
{
public static void main(String[] args)
{
int[] numberArray = { 2, 3, 5};
/*
* Version #2: T reduce(T identity, BinaryOperator<T> accumulator) -
* This method is similar to the version #1, but it returns the reduced
* value of the specified type T. The identity value must be an identity
* value for the accumulator function, which means it does not affect
* the result of accumulation.
*
* The following code calculates sum of numbers in a stream:
*/
int sum = Arrays.stream(numberArray).reduce(0, (x, y) -> (x + y));
System.out.println("sum = " + sum);
}
}
Outputsum = 10
Click the below link to download the code:https://sites.google.com/site/ramj2eev1/home/javabasics/StreamDemo_reduce_accumulate.zip?attredirects=0&d=1Github Link:https://github.com/ramram43210/Java/tree/master/BasicJava/StreamDemo_reduce_accumulateBitbucket Link:https://bitbucket.org/ramram43210/java/src/a9fa8aa6476993bce8a79f4d0e8f1799d1d35a7f/BasicJava/StreamDemo_reduce_accumulate/?at=masterSee also: All JavaEE Viedos PlaylistAll JavaEE ViedosAll JAVA EE LinksServlets TutorialAll Design Patterns LinksJDBC TutorialJava Collection Framework TutorialJAVA TutorialKids Tutorial