请用Predicate函数式接口实现一个过滤器
时间: 2024-05-14 19:13:29 浏览: 92
可以使用以下代码实现一个Predicate函数式接口的过滤器:
```
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
public class FilterExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave", "Eva");
// Define a predicate to filter names starting with "A"
Predicate<String> startsWithAPredicate = name -> name.startsWith("A");
// Use the predicate to filter names
List<String> filteredNames = filter(names, startsWithAPredicate);
// Print the filtered names
System.out.println(filteredNames);
}
public static <T> List<T> filter(List<T> list, Predicate<T> predicate) {
List<T> filteredList = new ArrayList<>();
for (T item : list) {
if (predicate.test(item)) {
filteredList.add(item);
}
}
return filteredList;
}
}
```
这个例子演示了如何使用Predicate函数式接口实现一个过滤器,它可以根据一个给定的条件来过滤一个列表。在这个例子中,我们使用Predicate接口来定义一个过滤条件,然后使用filter方法来过滤一个名字列表,只保留以"A"开头的名字。
阅读全文