Java 8 Collectors examples

Java 8 Collectors
In this post,  we are going to see java 8 Collectors examples. You can do various operations such as average, count, groupby, sort the list with the help of Collectors. I am not providing theory here, I think you will learn better with the help of examples.
Examples:

Counting:

Counting is used to count number of elements in the stream.It returns Collector instance which can be accepted by collect method.

When you run above code, you will get below output:

AveragingInt :

AveragingInt is used to find average of stream elements as int datatype. It returns Collector instance which can be accepted by collect method.

When you run above code, you will get below output:

30.0
1100.0

Lets understand how did you get 30 for case 1 :
(10+20+30+40+50/5)= 150/5 =30.0 
Now you must wondering how did we get 1100 for 2nd case:
(10*10 + 20*20 + 30*30 + 40*40 + 50*50)/5=5500/5 = 1100.0 
If you want to understand more about v-> v*v , you can go through Java 8 lambda expressions Similarly we have different function for different data types such as AveragingDouble, AveragingLong.

joining

Joining method is used to concatenate with delimiter, you can also pass prefix and suffix.

When you run above code, you will get below output:

String with hyphen : Arpit-John-Martin
String with hyphen , suffix and prefix : ==Arpit-John-Martin==

summingint:

summingInt is used to find sum of stream elements as int datatype. It returns Collector instance which can be accepted by collect method.

When you run above code, you will get below output:

150
5500

Similarly we have different function for different data types such as summingDouble, summingLong.

collectingAndThen:

collectingAndThen: is used to get a Collector instance and perform finishing function on top of it.

When you run above code, you will get below output:

75

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

Was this post helpful?

Leave a Reply

Your email address will not be published. Required fields are marked *