在Java中,可以使用Stream流來進行過濾并返回對象。以下是一個示例:
假設有一個包含Person對象的列表,我們希望根據某個條件過濾出年齡大于18歲的人。可以使用filter()方法來過濾列表,然后使用collect()方法將過濾后的結果收集到一個新的列表中。
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) {
List<Person> personList = new ArrayList<>();
personList.add(new Person("Alice", 20));
personList.add(new Person("Bob", 25));
personList.add(new Person("Charlie", 17));
List<Person> filteredList = personList.stream()
.filter(person -> person.getAge() > 18)
.collect(Collectors.toList());
for (Person person : filteredList) {
System.out.println(person.getName() + " - " + person.getAge());
}
}
}
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;
}
}
在上面的示例中,首先創建了一個包含Person對象的列表。然后使用stream()方法將列表轉換為一個流。接著使用filter()方法傳入一個Lambda表達式,該表達式用來過濾出年齡大于18歲的人。最后使用collect()方法將過濾后的結果收集到一個新的列表中。
最后,使用for循環遍歷新的列表,輸出每個人的姓名和年齡。運行上面的代碼,輸出結果如下:
Alice - 20
Bob - 25