siteDtoList.stream().filter
时间: 2025-07-05 09:55:23 浏览: 1
### Java Stream Filter 使用示例
在 Java 中,`Stream` 接口提供了丰富的操作方法来处理集合数据。其中 `filter` 方法用于筛选满足特定条件的元素[^1]。
下面是一个具体的例子,展示如何使用 `siteDtoList.stream().filter()` 来过滤列表中的对象:
假设我们有一个名为 `SiteDTO` 的类,它表示网站的相关信息,并且包含字段如 `name`, `url`, 和 `isActive`。我们需要从 `siteDtoList` 列表中筛选出所有活跃 (`isActive`) 的站点。
#### 示例代码
```java
import java.util.List;
import java.util.stream.Collectors;
class SiteDTO {
private String name;
private String url;
private boolean isActive;
public SiteDTO(String name, String url, boolean isActive) {
this.name = name;
this.url = url;
this.isActive = isActive;
}
public String getName() {
return name;
}
public String getUrl() {
return url;
}
public boolean isActive() {
return isActive;
}
@Override
public String toString() {
return "SiteDTO{" +
"name='" + name + '\'' +
", url='" + url + '\'' +
", isActive=" + isActive +
'}';
}
}
public class Main {
public static void main(String[] args) {
List<SiteDTO> siteDtoList = List.of(
new SiteDTO("Google", "https://www.google.com", true),
new SiteDTO("Bing", "https://www.bing.com", false),
new SiteDTO("DuckDuckGo", "https://duckduckgo.com", true)
);
// 过滤出所有活跃的站点
List<SiteDTO> activeSites = siteDtoList.stream()
.filter(site -> site.isActive())
.collect(Collectors.toList());
// 输出结果
activeSites.forEach(System.out::println);
}
}
```
在这个例子中,`filter` 方法接收一个 Lambda 表达式作为参数,该表达式的逻辑决定了哪些元素会被保留下来。最终通过 `Collectors.toList()` 将流转换回列表形式[^1]。
#### 关键点说明
- **Lambda 表达式**:`site -> site.isActive()` 是一种简洁的方式定义筛选条件。
- **惰性求值**:`Stream` 的中间操作(如 `filter`)不会立即执行,只有当遇到终端操作(如 `collect` 或 `forEach`)时才会触发实际计算[^4]。
---
###
阅读全文
相关推荐








