java - 如何用通用方法找出最小值?

标签 java arrays generics arraylist

我正在尝试解决有关使用循环找出数组中最低值的练习。练习是关于泛型的。但我很难找到解决方案。对于字符串数组,我将使用“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/

相关文章:

java - Eclipse 文本编辑器拖放鼠标单击组合键

javascript - 根据预定义的顺序在 Javascript 中对数组进行排序

java - Collections 类中 checkedList 方法的用途

java - 什么是原始类型,为什么我们不应该使用它呢?

java - 可选择在 map 和 orElseGet 中使用通用通配符

java - 警告 : Encoded password does not look like BCrypt

java - 如何将 GPS 度、分、秒转换为度、小数分/秒?

java - 单击按钮即可应用多种功能

python - 如何对数据框中某些列和行的数据求和?

javascript - 类型错误 : foo is undefined when trying to call it in array