假设我有一个包含元素(34、11、98、56、43)
的列表。
使用Java8 streams,如何找到列表最小元素的索引(例如,在本例中为1)?
import static java.util.Comparator.comparingInt;
int minIndex = IntStream.range(0,list.size()).boxed()
.min(comparingInt(list::get))
.get(); // or throw if empty list
正如@tagirvaleev在他的回答中提到的,可以通过使用intstream#reduce
而不是stream#min
来避免装箱,但代价是模糊了意图:
int minIdx = IntStream.range(0,list.size())
.reduce((i,j) -> list.get(i) > list.get(j) ? j : i)
.getAsInt(); // or throw
问题内容: 说我有一个包含元素的列表。 使用Java 8流,如何找到列表中最小元素的索引(例如,本例中为1)? 我知道可以使用Java在Java中轻松完成此操作。但是,我正在研究类似Scala的解决方案,我们可以简单地说一下获得最小值的索引。 使用流或lambda表达式(例如Java 8的特定功能)可以完成相同的结果吗? 注意:这仅用于学习目的。使用实用程序方法没有任何问题。 问题答案: impo
我试图找到矩阵中每列的最小值和最大值,但我当前的代码运行不正确。我试图把最小值放在一个新矩阵的第一行,最大值放在下一行,并对每一列这样做。任何帮助都将不胜感激,谢谢!
我编写了以下方法来查找映射到最高值的键,并尝试转换为java。你能帮忙吗?
我有这样的课: 和类似的列表,其中填充了元素。 如何使用Java8获得的最小值和最大值?
问题内容: 我编写了以下方法来查找映射到最高值的键,然后尝试转换为java 。你能帮忙吗? 问题答案: 您可以通过以下方式获得一个钥匙 但不幸的是,没有内置函数可以获取所有等效的最大值。 最简单,直接的解决方案是先找到最大值,然后再检索映射到该值的所有键: “ 如何强制max()返回JavaStream中的所有最大值? ”中讨论了单次获取流的所有最大值的解决方案。”。您将看到,如果您的输入是普通的