栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

有状态和无状态lambda表达式有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

有状态和无状态lambda表达式有什么区别?

为了尝试举一个例子,让我们考虑以下内容

Consumer
(注意:这种功能的有用性在这里并不重要):

public static class StatefulConsumer implements IntConsumer {    private static final Integer ARBITRARY_THRESHOLD = 10;    private boolean flag = false;    private final List<Integer> list = new ArrayList<>();    @Override    public void accept(int value) {        if(flag){   // exit condition return;         }        if(value >= ARBITRARY_THRESHOLD){ flag = true;        }        list.add(value);     }}

它是一个将向其中添加项目的消费者

List
(让我们既不考虑如何获取列表又不考虑线程安全性),并具有一个标志(表示状态)。

其背后的逻辑是,一旦达到阈值,消费者应停止添加商品。

您的书试图说的是,因为没有确定的顺序,函数将必须使用的元素

Stream
,因此输出是不确定的。

因此,它们建议您仅使用无状态函数,这意味着它们将始终在相同的输入下产生相同的结果。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410459.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号