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,可能正弦不是那麼大的問題,但在某些情況下,取決於特定的鍵提取函數,它可能很重要。 –