java list过滤对象属性为null或为空
时间: 2024-10-09 09:13:09 浏览: 95
在Java中,如果你有一个List对象,并想要过滤掉其中所有对象的某个属性值为null或空(例如String类型的属性),可以使用Stream API来进行操作。这里是一个简单的例子:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 创建一个包含对象的列表,假设每个对象有名为"property"的属性
List<MyObject> objects = new ArrayList<>();
objects.add(new MyObject("value1"));
objects.add(new MyObject(null));
objects.add(new MyObject(""));
// 使用Stream API过滤出"property"非null或非空的对象
List<MyObject> filteredObjects = objects.stream()
.filter(obj -> obj.getProperty() != null && !obj.getProperty().isEmpty())
.collect(Collectors.toList());
// 打印过滤后的结果
filteredObjects.forEach(System.out::println);
}
}
class MyObject {
private String property;
// getters and setters
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
}
```
在这个例子中,`getProperty()`方法用于获取对象的属性值。通过`.filter()`方法,我们只保留那些其`property`属性既不为null也不为空(即非空字符串)的元素。
阅读全文