Kol*_*vis -2 java lambda java-stream
所以我试图通过这个测试:
public void testCountWithCondition() {
List<Integer> data = Arrays.asList(1, 3, 8, 4, 6);
int count = streamer.count(data, x -> x % 3 == 0);
assertEquals(2, count);
}
Run Code Online (Sandbox Code Playgroud)
我很难理解如何创建一个count可以将 lambda 表达式作为参数的方法。我看过其他帖子说您需要创建一个接口类,但是如何对其进行编程才能接受任何 lambda 表达式?另外,作业特别指出我需要使用流。谢谢!
你的方法应该接受一个Predicate。所有采用一个参数并返回布尔值的 lambda 都实现该接口。调用谓词是通过执行其test()方法来完成的。
例子:
public <T> long count(Collection<T> collection, Predicate<T> filter) {
return collection.stream()
.filter(filter)
.count();
}
Run Code Online (Sandbox Code Playgroud)