In this tutorial, we are going to show you how to filter a stream of objects in Java 8. We can filter the string values and as well as objects using the Java 8 Stream filter.
Java 8 Stream Filter :
The filter[] in Java 8 is a method which is coming from the Stream interface, which returns the Stream object consisting of the elements of this stream that matches the given Predicate[action].
Legacy way of filtering the list in Java :
The similar way of filtering the list of strings using Java 8 Stream Filter.
List subjects = list.stream[] .filter[sub -> sub.contains["Hibernate"]] .collect[Collectors.toList[]]; subjects.forEach[System.out::println];Stream Filter with Strings :
Java8_Streams_filter.java
package com.onlinetutorialspoint.java8;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Java8_Streams_filter {
public static void main[String[] args] {
List list = new ArrayList[];
list.add["Java"];
list.add["Spring"];
list.add["Hibernate"];
list.add["Java8 Filter"];
list.add["JQuery"];
list.add["Hibernate 4"];
list.add["AngularJs"];
list.add["Java8 Streams"];
java8_filter[list];
}
public static void normal_filter[List list] {
for [String sub : list] {
if [sub.contains["Java8"]] {
System.out.println[sub];
}
}
}
public static void java8_filter[List list] {
List subjects = list.stream[].filter[sub -> sub.contains["Hibernate"]].collect[Collectors.toList[]];
subjects.forEach[System.out::println];
}
}Recommended: How to use Java8 foreach
Output:
Stream Filter with Objects :
We can filter the list of user-defined objects using the Stream filter in Java. Here I am going to create a Subject POJO class to filter the elements.
Student.java [POJO]
Subject.java
class Subject {
private int subId;
private String subName;
public Subject[int subId, String subName] {
super[];
this.subId = subId;
this.subName = subName;
}
public int getSubId[] {
return subId;
}
public String getSubName[] {
return subName;
}
}Stream Filter with Objects Example :
Java8_Streams_filter.java
package com.onlinetutorialspoint.java8;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Java8_Streams_filter {
public static void main[String[] args] {
List subjects = Arrays.asList[new Subject[1, "Java"], new Subject[2, "Spring"],
new Subject[3, "Hiberate"]];
java8_filterObjects[subjects];
}
public static void java8_filterObjects[List subjects] {
Subject subject = subjects.stream[].filter[name -> "Java".equals[name.getSubName[]]].findAny[].orElse[null];
System.out.println[subject.getSubName[]];
}
}Output:
JavaHappy Learning
Related Posts
- Java 8 Read File Line By Line Example
- Hibernate Filter Example Xml Configuration
- How to convert List to Map in Java 8
- How to Filter null values from Java8 Stream
- Java 8 How to get common elements from two lists
- How to Filter a Map in Java 8
- How to Convert Java 8 Stream to Array
- Java 8 How to convert Stream to List
- How to get Stream count in Java 8
- Java 8 Getting Min and Max values from a Stream
- How to Convert Iterable to Stream Java 8
- How Java 8 Stream generate random String and Numbers
- Java8 Concatenate Arrays Example using Stream
- Java 8 Stream API and Parallelism
- Array of objects in AngularJs Example
Previous Next
Share a word.
FacebookTwitterRedditLinkedInTumblrPinterestVkEmail
Leave A Comment Cancel reply
Comment
Δ