如何在 List<E> 中找到最小值?

Bir*_*rdy 3 java generics lambda list

我以这种方式尝试过,但我得到的只是这个错误消息:java:不兼容的类型:E无法转换为int

public static<E extends Comparable<?superE>> Optional<E> min(List<E>list) {
     int result = reduce(list, 0, (a, l) -> a.compareTo((int)l) <= 0 ? a:(int)l);
     return (Optional<E>) Optional.of(result);
}
Run Code Online (Sandbox Code Playgroud)

我真的不知道如何解决这个问题。

Eug*_*ene 6

写成这样会容易得多:

return list.stream().min(Comparator.comparing(Function.identity()));
Run Code Online (Sandbox Code Playgroud)