【发布时间】:2021-12-07 20:32:06
【问题描述】:
我正在为国际象棋引擎使用 Java 并行流。该流用于评估给定移动列表中的每个国际象棋移动。每个 Move 都映射到一个表示 Move 值的 Integer,然后我将所有 Integer 收集到一个 List 中,并返回 List 中最大的 Integer。
这看起来很简单,但我想将我的流设计为如果通过流的整数匹配某些条件也立即终止。
例如,如果我有一个包含 100 个要转换为流的 Move 的列表,如果这些 Move 中的任何一个映射到小于 4 的 Integer,我希望我的流立即终止,否则我想收集那些将整数整合到列表中(这只是一个帮助澄清的示例)。
我不知道该怎么做(我考虑过短路操作,但我不知道如何在流不短路的情况下将短路操作与收集器一起使用-电路)。我也很乐意澄清任何事情。谢谢!
【问题讨论】:
-
到目前为止你尝试了什么?如果您可以提供一些代码,这里的伙计们/姑娘们可以为您提供更好的帮助。顺便说一句,我猜 Java Stream API 的 map、filter 和 collect 方法可以帮助你。您可以查看 Stream API 的官方文档(docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html),也可以在线查看一些示例。
-
请提供足够的代码,以便其他人更好地理解或重现问题。
标签: java stream short-circuiting parallelstream