在Java中过滤列表的最简单和最有效的方法通常使用Java 8引入的Stream API。Stream API提供了一种高效且易于理解的方式来处理集合数据。
Stream API允许你以声明性方式处理数据集合(如列表)。它支持各种中间操作(如filter、map)和终端操作(如collect),这些操作可以链式调用。
filter
、map
、sorted
等,返回一个新的Stream。collect
、forEach
、reduce
等,产生最终结果并关闭Stream。过滤列表、映射数据、聚合数据、排序等。
假设我们有一个包含整数的列表,我们希望过滤出所有大于10的数:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FilterListExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(5, 12, 8, 15, 20);
List<Integer> filteredNumbers = numbers.stream()
.filter(n -> n > 10)
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [12, 15, 20]
}
}
filter
等操作之前,先进行null检查或使用Optional
类来处理可能的null值。List<Integer> numbers = Arrays.asList(5, null, 12, 8, 15, 20);
List<Integer> filteredNumbers = numbers.stream()
.filter(Objects::nonNull)
.filter(n -> n > 10)
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [12, 15, 20]
通过使用Stream API,你可以更高效地处理列表数据,并且代码更加简洁和易读。
领取专属 10元无门槛券
手把手带您无忧上云