Erstellen eines Streams von benutzerdefinierten Objekten
Lassen Sie uns einen Stream von benutzerdefinierten Objekten erstellen und die Objekte anhand einer Bedingung ausschließen. Wir werden eine Liste von benutzerdefinierten Objekten deklarieren, sie in einen Stream umwandeln und dann die filter()
-Methode verwenden, um die Objekte anhand einer Bedingung auszuschließen.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StreamFilter {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("John", 25),
new Person("Sarah", 30),
new Person("Mike", 35),
new Person("Emma", 40)
);
Stream<Person> stream = people.stream();
Stream<Person> filteredPeople = stream.filter(p -> p.getAge() > 30);
List<Person> result = filteredPeople.collect(Collectors.toList());
System.out.println(result); // Ausgabe: [Mike{name='Mike', age=35}, Emma{name='Emma', age=40}]
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return name + "{name='" + name + '\'' + ", age=" + age + '}';
}
}
Im obigen Code deklarieren wir eine Liste von benutzerdefinierten Objekten vom Typ Person
, wandeln sie mit der stream()
-Methode in einen Stream um und filtern dann die Objekte, deren Alter größer als 30 ist, mit der filter()
-Methode aus.