首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中流接口的方法是如何工作的?

java中流接口的方法是如何工作的?
EN

Stack Overflow用户
提问于 2017-05-28 20:28:19
回答 1查看 352关注 0票数 1

最近我在学习Java 8的特性,所以我从一个lambda表达式开始,然后我遇到了Java流API,现在我正试图理解流API中的方法,它们是如何工作的?

我对lambda表达式的理解是,如果我们想要将lambda表达式传递给方法,那么我们需要创建一个具有单个未实现方法(Java 8接口可以有默认实现)的接口,该接口与lambda表达式的签名相匹配。然后,向其传递lambda表达式的方法可以通过调用接口方法来执行lambda表达式。所以我可以说,lambda表达式是作为接口方法的实现工作的。

但是当我看到stream API时,它有一些方法可以改变流,例如下面的代码只是通过过滤小于5的整数来打印整数。

代码语言:javascript
复制
import java.util.Arrays;
import java.util.List;


public class StreamDemo {
   static List<Integer> list= Arrays.asList(new Integer(1), new Integer(2), new Integer(3), new Integer(4), new Integer(5), new Integer(6));
    public static void main(String[] ar) {
        list.parallelStream()
                .filter( x-> x<5)
                .forEach(System.out::print);
    }
}

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-05-28 20:56:17

List一样,Stream只是一个接口。在运行时,Java挑选一个完成这项工作的实现。如果您想知道filter方法是如何实现的,您可以在java.util.stream.ReferencePipeline#filter中找到一个示例。

我希望这能回答你的问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44227325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档