gpt4 book ai didi

java - 多流操作

转载 作者:行者123 更新时间:2023-11-30 07:07:22 26 4
gpt4 key购买 nike

这就是我正在做的事情:我有一个来自 RSS 提要的事件,它告诉我票证已被编辑。要获取对该票证所做的更改,我必须调用 REST 服务。

所以我想用一种更紧凑、更实用的方法来做,但它只是变成了一堆疯狂。事实上,直接的旧式 Java 就是这么简单:

/**
* Since the primary interest is in what has been changed, we focus on getting changes
* often and pushing them into the appropriate channels.
*
* @return changes made since we last checked
*/
public List<ProcessEventChange> getLatestChanges(){
List<ProcessEventChange> recentChanges = new ArrayList<>();
List<ProcessEvent> latestEvents = getLatestEvents();
for (ProcessEvent event : latestEvents){
recentChanges.addAll(getChanges(event));
}
return recentChanges;
}

这里有几个与此相关的问题似乎没有直接的答案,我问这个问题是为了有一个非常具体的例子,而且问题非常清楚:是否可以用流和如果是怎么办?

如果流不适合这样的事情,那么它们真的没什么用。我之所以这么说,是因为这是一个非常普遍的要求:一些数据要用来自另一个来源的更多信息来丰富。

最佳答案

您需要的是 flatMap,它可以将输入列表的单个 ProcessEvent 对象映射到多个 ProcessEventChange 对象,并将所有这些对象扁平化为单个 Stream of ProcessEventChange

List<ProcessEventChange> recentChanges = getLatestEvents().
stream().
flatMap(e -> getChanges(e).stream()).
collect(Collectors.toList());

关于java - 多流操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25000687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com