如何在Java中使用ThreadLocalRandom.current().ints(int,int)查找与特定表达式匹配的特定数字?
我想使用ThreadLocalRandom.current().ints(int,int)生成ifinite IntStream,例如:如何在Java中使用ThreadLocalRandom.current().ints(int,int)查找与特定表达式匹配的特定数字?,java,algorithm,java-stream,Java,Algorithm,Java Stream,我想使用ThreadLocalRandom.current().ints(int,int)生成ifinite IntStream,例如: ThreadLocalRandom.current().ints(0,20) 据我所知,这段代码将生成一个IntStream {2,7,4,0,5,9,3…} 然后我想得到与特定表达式匹配的第一个数字,例如 这个数字应该可以除以3 在这种情况下,数字应该是9。所以问题是,我如何使用流运算获得这个数字?因为返回一个无穷大,所以需要使用并短路它: Optional
ThreadLocalRandom.current().ints(0,20)
据我所知,这段代码将生成一个IntStream
{2,7,4,0,5,9,3…}
然后我想得到与特定表达式匹配的第一个数字,例如
这个数字应该可以除以3
在这种情况下,数字应该是9。所以问题是,我如何使用流运算获得这个数字?因为返回一个无穷大,所以需要使用并短路它:
OptionalInt divisibleByThree = ThreadLocalRandom.current()
.ints(0, 20)
.filter(i -> i % 3 == 0)
.findFirst();
打印此文件可能会返回以下内容:
OptionalInt[12]
告诉我们您到目前为止做了什么,读了什么,尝试了什么。
在这种情况下,数字应该是9
-为什么9
而不是0
0
在9
之前,…然后我想得到与特定表达式匹配的第一个数字
-我想你应该使用findFirst()
而不是findAny()
,因为顺序至关重要。