java-stream相关内容

以并行方式将`BufferedReader`转换为`Stream< String>`

有没有办法接收 Stream从 BufferedReader阅读器中流出,以便 stream 中的每个字符串代表一行 reader ,附加条件是直接提供 stream (在 reader 阅读所有内容)?我希望处理 stream 的数据,以便从 reader 获取它们以节省时间。 编辑:我想处理与阅读并行的数据。我不想并行处理不同的行。它们应该按顺序处理。 让我们举例 ..
发布时间:2019-01-02 20:49:13 Java开发

Java 8中记忆的无限Fibonacci序列

首先,我是一名JavaScript程序员,对Java8很新,并尝试新功能。 由于我专注于JS编码,我实现了自己的JS用于概念验证的惰性函数库。 https: //github.com/kenokabe/spacetime 使用该库,我可以编写自然数的无限序列和Fibonacci 下方: JavaScript var spacetime = require('./ s ..
发布时间:2019-01-02 20:41:50 Java开发

使用基于Optional< Map>的内容的流

我从不受我控制的服务中获取了一张地图,该服务可能为空,并且想要处理它,比如说,过滤,映射和缩减为我需要的单个元素。 问题:从“可选”到“流”是否有“链接”? 我尝试过(除其他事项外): return Optional.ofNullable(getMap()) .map(Map :: entrySet)//获取入口集 .map(Stream :: ) .orElseGet( ..
发布时间:2019-01-02 15:52:29 Java开发

如何从Mono创建Flux

我有一个Mono A.对象A包含两个列表。我想直接创建两个Flux。这可能没有block()吗? Mono a = ......; Flux a1 = Flux.fromIterable(a.block()。getList1()); 解决方案 使用Mono.flatMapMany()方法: Flux flux1 = mono.ma ..
发布时间:2019-01-02 15:50:54 Java开发

Java Streams - 获取“对称差异列表”来自另外两个名单

我试图使用Java 8流来组合列表。 如何从两个现有列表中获得“对称差异列表”(仅存在于一个列表中的所有对象)。 我知道如何获得交叉列表以及如何获得联合列表。 在下面的代码中,我想要从两个列表中找到不相交的汽车cars(bigCarList,smallCarList)。 我希望结果是2辆车的列表(“丰田卡罗拉”和“福特福克斯”) 示例代码: public void tes ..
发布时间:2019-01-02 15:44:21 Java开发

如何限制Stream按顺序运行,并阻止它并行运行?

我有一个方法可以返回从自定义spliterator生成的流;分裂器不是安全的。由于分裂器不是踏板安全的,并且它保持状态,我想防止它并行运行。有没有办法阻止返回的流并行运行? 我无法找到任何执行此操作的文档或示例。我确实在 BaseStream 类上找到了 sequential()方法,但这似乎并不能阻止用户调用 parallel()来获取并行流。 解决方案 并行流调用 trySpli ..
发布时间:2019-01-02 15:36:19 Java开发

Java流是否等同于具有变量赋值的while

是否存在与以下内容等效的任何流 列表整数; while(!(ints = this.nextInts())。isEmpty()){ // do work } 解决方案 首先,感谢@OlivierGrégoire的评论。它改变了我对新知识的回答。 为未知大小编写自己的 Spliterator nextInts ,然后您可以使用 StreamSupp ..
发布时间:2019-01-02 15:32:31 Java开发

如何在Java 8中从流创建二维数组?

我有这样的文字文件: ids.txt 1000 999 745 123 ... 我想读取此文件并将其加载到二维数组中。我希望有一个类似于下面的数组: Object [] [] data = new Object [] [] { // {new Integer(1000)},// {new Integer(999)},// {ne ..
发布时间:2019-01-02 14:43:58 Java开发

命名返回流的java方法

是否有返回Stream的方法的命名约定? 我发现的唯一提及是这个关于SO的答案(最后一段),但我看不出是什么它是基于。 解决方案 自从我写了那段以来,我觉得有必要回答。 : - ) 假设您有一个表示单个类型事物聚合的类,并且您想要返回 Stream 他们给来电者。 如果你完全明确地告诉你什么,你也可以调用方法流()。 JDK中有很多方法,名为 stream(),它们返回一个明 ..
发布时间:2019-01-02 14:43:24 Java开发

使用双冒号 - 静态和非静态方法引用之间的区别

编辑:我的问题在这里得到了解答。总而言之,我对非静态方法引用的使用感到困惑。函数接口和引用方法有不同数量的参数。 我的问题是 comment 和接受的答案。 我目前正在阅读关于流减少方法的Java教程( https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html )。在那里,我发现了一段我认为错误 ..
发布时间:2019-01-02 14:36:35 Java开发

如何以相反的顺序对IntStream进行排序

我正在使用 BufferedReader 从.txt文件中读取数字。我想颠倒这种蒸汽中元素的顺序,这样当它们被收集时,它们将从最高到最低排列。我不想在构建数组之后进行排序,因为我不知道它中可能有多少个元素,我只需要最多的N个元素。 in = new BufferedReader(reader); int [] arr = in.lines() .mapToInt(Integer :: ..
发布时间:2019-01-02 14:21:34 Java开发

在mapToInt之后调用map是否有任何优势,如果需要的话

我正在尝试计算列表中值的平方和。 以下是三个变量,它们都计算所需的值。 我想知道哪一个效率最高。我期待第三个 更高效,因为自动装箱只进行一次。 //总和square int sum = list.stream()。map(x - > x * x).reduce((x,y) - > x + y)。get(); System.out.println(“平方和:”+总和); ..
发布时间:2019-01-02 14:14:21 Java开发

Java,哪个线程是顺序流执行的?

在阅读有关溪流的文档时,我遇到了以下句子: 。 ..试图从行为参数访问可变状态会给你一个错误的选择...如果你没有同步访问该状态,你就会有数据竞争,因此你的代码被破坏了...... [1] 如果行为参数确实有副作用...... [没有]保证不同的操作在同一个流管道中的“相同”元素上,在同一个线程中执行。 [2] 对于任何给定元素,可以在任何时间执行操作,在库选择的任何线程中。 [ ..
发布时间:2019-01-02 14:13:52 Java开发

Java流过滤器值的总和

我有一个名为 MonitoredData 的类,用于描述活动,开始时间和结束时间。属性为 activityLabel , startTime , endTime 。我必须使用流来划分和过滤这些活动,这些活动的总持续时间超过10小时。我设法计算了持续时间的总和,并根据活动将它们分组: Map map4 = new HashMap(); ..
发布时间:2019-01-02 14:03:52 Java开发

在filter()操作过滤掉所有内容后,Java流findAny()遇到空指针异常

我无法确定为什么 findAny()在 filter()操作之后抛出空指针异常流。在这个特定的测试用例中,过滤器操作应该已经过滤掉了所有内容,没有留下 findAny()的结果。 可选< JsonNode> encryption = sseEncryptionList.stream() .filter(n - > n.textValue()。equals(“AES256”)) ..
发布时间:2019-01-02 13:57:35 Java开发

Stream.spliterator对并行流的奇怪行为

我正在使用流分裂器直接进行我正在编写的库中的低级操作。最近,当我使用流分裂器并交错 tryAdvance / trySplit 调用时,我发现了非常奇怪的行为。这是一个演示问题的简单代码: import java.util.Arrays; import java.util.Spliterator; 公共类SpliteratorBug { public static void m ..
发布时间:2019-01-02 13:54:36 Java开发