使用 lambdas 如何创建自定义 Java 筛选器?
在 java 中,使用 lambdas 创建自定义筛选器提供了简洁的方式来过滤数据,通过 predicate 接口和 lambda 表达式,可以根据指定条件从集合中筛选元素。例如,我们可以筛选出价格大于 100 的项目,语法如下:使用 predicate 接口,定义一个接受参数并返回布尔值的函数。传递 lambda 表达式作为 predicate 实例给 filter() 方法。通过 stream() 和 collect() 方法返回过滤后的数据。
在 Java 中,筛选器允许我们从集合中过滤元素。传统的筛选器使用匿名内部类,但 lambdas 提供了一种更简洁、更优雅的方式来创建这些筛选器。
使用 Lambda 表达式
Lambda 表达式是匿名函数,它接受一个或多个参数并返回一个值。要创建自定义筛选器,我们可以使用 Predicate 接口,它接受一个参数并返回一个布尔值。然后,我们可以将 lambda 表达式作为 Predicate 实例传递给 filter() 方法。
语法:
List<Item> filtered = originalList.stream() .filter(item -> item.getPrice() > 100) .collect(Collectors.toList());
实战案例:
假设我们有一个 Item 类,其中包含每个项目的名称和价格:
public class Item { private String name; private double price; }
现在,让我们创建一个 List 的 Item 并使用 lambda 表达式筛选出价格大于 100 的项目:
List<Item> items = new ArrayList<>(); items.add(new Item("Item 1", 120)); items.add(new Item("Item 2", 50)); items.add(new Item("Item 3", 200)); List<Item> filteredItems = items.stream() .filter(item -> item.getPrice() > 100) .collect(Collectors.toList()); System.out.println("Filtered Items:"); for (Item item : filteredItems) { System.out.println(item.getName() + ", " + item.getPrice()); }
输出:
Filtered Items: Item 1, 120.0 Item 3, 200.0