stream().filter()过滤两个字段
时间: 2023-10-21 09:28:44 浏览: 197
你可以使用 Java 8 的 Stream API 中的 `filter` 方法来过滤包含两个字段的元素。以下是一个示例:
假设你有一个包含对象的列表,每个对象都有两个字段:`field1` 和 `field2`。你想要过滤出那些 `field1` 和 `field2` 都满足某些条件的对象。
```java
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<MyObject> myList = ...; // 假设你有一个包含对象的列表
List<MyObject> filteredList = myList.stream()
.filter(obj -> obj.getField1().满足条件 && obj.getField2().满足条件)
.collect(Collectors.toList());
// 在 filteredList 中进行进一步操作
}
}
// 定义一个包含两个字段的对象类
class MyObject {
private String field1;
private String field2;
// 构造方法、getter 和 setter 方法
// 满足你自定义条件的 getter 方法
public boolean getField1() {
// 返回 field1 是否满足条件
}
public boolean getField2() {
// 返回 field2 是否满足条件
}
}
```
在上面的示例中,你可以使用 lambda 表达式来定义过滤条件,通过在 `filter` 方法中返回 `true` 或 `false` 来决定是否保留该对象。在条件中,你可以使用任何适用于字段类型的比较操作符或方法。
请根据你的实际需求修改条件表达式,并在 `// 在 filteredList 中进行进一步操作` 的位置对过滤后的列表进行进一步操作。
阅读全文