【发布时间】:2014-10-25 23:09:48
【问题描述】:
class App {
public static void main(String[] args) {
ArrayList<Integer> myList = new ArrayList<>();
myList.add(7);
myList.add(18);
myList.add(10);
myList.add(24);
myList.add(17);
myList.add(5);
Stream<Integer> stream = myList.stream();
stream = stream.filter(n -> n > 10); // it returns a stream of elements more than 10
stream.forEach(n -> System.out.print(n + " "));
}
}
此代码过滤调用流,然后打印所有超过 10 个的元素。Predicate 中的测试方法为我们完成了这项工作。
但是,返回大于 10 的“STREAM”的 filter() 方法的实际实现在哪里?我不明白。
这个问题在某种程度上也适用于 forEach() 方法。它如何遍历流?由于 filter() 和 forEach() 方法在接口流中是抽象的,没有实现。
【问题讨论】:
标签: java-8 abstract java-stream java