我正在尝试解决有关使用循环找出数组中最低值的练习。练习是关于泛型的。但我很难找到解决方案。对于字符串数组,我将使用“if (minimum.compareTo(list[i]) > 0) ”。我陷入了如何使用整数数组执行此操作的困境。非常感谢任何提示或帮助。
这是我的代码:
public class Excercise {
public static void main(String[] args) {
//Create an array
Integer[] intArray = { new Integer(45), new Integer(2), new Integer(6), new Integer(15) };
//print the lowest value
System.out.print(min(intArray));
// min(intArray);
}
public static <E extends Comparable<E>> E min(E[] list) {
E minValue = list[0];
for(int i = 1; i < list.length; i++) {
if(minValue.compareTo(list[i]) { <-- i get an error her
minValue = list[i];
return minValue;
}
}
最佳答案
compareTo
不会返回 boolean
,因此您不能将其用作 if
子句的条件。
参见http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html#compareTo%28T%29
相反,它返回 int。如果结果大于零,则意味着第一项更大。如果低于,则较小。
因此请使用 if(minValue.compareTo(list[i])>0))
代替。
代码中还有其他错误(主要是拼写错误)。我会把这些留给你。
关于java - 如何用通用方法找出最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22096824/