Java 8 Stream Distinct Examples

Today, I walk you through Java 8 Stream Distinct Examples using stream API. You can filter or collect all distinct elements from a collection by using distinct() of Stream API. In case, we have to process a collection of complex objects we need to write a custom function for the specific filtering purpose. Let’s dive into it.

Java 8 Stream Distinct Examples

1. Java 8 distinct example
Now, we are finding all distinct strings without case sensitive from the String collection.

Output

2. Java 8 stream distinct by key

The above distinct example is quite simple and easy for us. In fact, we need to deal with objects or complex types.

We’re considering a POJO as below

Until now, Java doesn’t support any native API for filtering distinct by object property directly, even date object. We have to create a utility function that matches our requirements. Our utility function will filter distinct by the name property of People object, like this.

Here is a function that returns a predicate that maintains state about what it’s seen previously, and that returns whether the given element was seen for the first time.

Writing the demo program that is the main part of our Java 8 Stream Distinct Examples:

Output

Java 8 Stream Distinct Examples

That’s all about the Java 8 Stream Distinct Examples. If you want to know further other Java 8 resources, please check out Java 8 tutorials.

References
Processing Data with Java SE 8 Streams

Download the complete source code, click link below


Java8StreamDistinctExamples.zip (195 downloads)

Leave a Comment

*

Please share it if you found this useful
Hide Buttons