final int[] brr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
for (int i : brr) {
System.out.println(Math.sin(i));
}
final int leastIdx = Arrays.stream(brr).min(Comparator.comparingDouble(i -> Math.sin(i))).get();
leastIdx应该返回为4,但我不能得到它编译。 感谢任何见解。Java 8:比较器比较双类型不匹配
The method min() in the type IntStream is not applicable for the
arguments (Comparator.comparingDouble((<no type> i) -> Math.sin(i)))
我不会在乎,除非一个探查者告诉我两次计算'罪'是一个问题。它不是不太可能被优化掉。 – Holger
@Holger,可能正弦不是那么大的问题,但在某些情况下,取决于特定的键提取函数,它可能很重要。 –