231得票31回答
Java 8流反转顺序

一般问题:如何正确地反转一个流?假设我们不知道这个流包含什么类型的元素,有什么通用方法可以反转任何流? 具体问题: IntStream提供了range方法来在特定范围内生成整数IntStream.range(-range,0),现在我想将其反转,从0到负数的切换范围行不通,也无法使用Int...

226得票4回答
为什么在将类型转换的Java 8中,reduce方法需要使用组合器?

我对 Streams 的 reduce 方法中的 combiner 所扮演的角色仍有些不太理解。 比如,下面的代码无法编译:int length = asList("str1", "str2").stream() .reduce(...

226得票5回答
使用流(Streams)相加BigDecimals

我有一个 BigDecimal 集合(在这个例子中,是一个 LinkedList),我想将它们相加。是否可以使用 streams 来计算它们的总和? 我注意到 Stream 类有几个方法。 Stream::mapToInt Stream::mapToDouble Stream::mapTo...

219得票10回答
Java SE 8是否拥有Pairs或Tuples?

我正在尝试使用Java SE 8中的惰性函数操作,并且我想将索引i映射到一对/元组(i,value [i]),然后基于第二个value [i]元素进行filter过滤,最后仅输出索引。 在Lambda和流的新时代,我还必须忍受这个吗:What is the equivalent of the...

219得票19回答
通过谓词限制流

是否有一种Java 8的流操作可以将一个(可能是无限的)Stream限制到第一个不符合谓词的元素? 在Java 9中,我们可以像下面的示例一样使用takeWhile来打印所有小于10的数字。IntStream .iterate(1, n -> n + 1) .takeW...

219得票5回答
在Java中,与循环相比,使用流的优点是什么?

在面试中,我被问到了这个问题,但我并不确定我给出了最好的答案。我提到了可以进行并行搜索,并且空值是通过某些我记不起来的方法处理的。现在我意识到我当时想到的是 Optionals。我错过了什么?他们声称这是更好或更简洁的代码,但我不确定我同意。 考虑到它如此简洁地被回答,似乎这并不是一个太...

218得票10回答
在Java Streams中,peek方法是否只用于调试?

我正在学习Java Streams并随着了解的深入而发现新东西。我找到的其中一件新事物是peek()函数。几乎所有我读到的有关peek()的内容都说它应该用于调试你的Streams。 如果我有一个Stream,其中每个账户都有用户名、密码字段以及login()和loggedIn()方法。 ...

218得票5回答
Java 8流的.min()和.max():为什么这个能编译?

注意:这个问题起源于一个死链接,该链接是之前的SO问题,但问题如下... 请看这段代码(注意:我知道这段代码不会“运行”,应该使用Integer::compare -- 我只是从链接的问题中提取出来的):final ArrayList <Integer> list = ...

217得票4回答
标准的Kotlin库中有哪些Java 8 Stream.collect的等效方法?

在Java 8中,有一个名为Stream.collect的函数,可以对集合进行聚合操作。在Kotlin中,虽然也有一些扩展函数在stdlib库中实现了类似的功能,但是不同用例下的等效性并不明显。 例如,在Java 8的Collectors文档顶部,有写于Java 8的示例,但是当将它们移植到...

216得票4回答
Java 8流和数组操作

我刚刚发现了新的Java 8流式编程功能。作为一名Python程序员,我想知道是否有一种简洁的方式可以像“一行Python代码”那样对数组进行加法、乘法等操作? 谢谢