我该如何解决这个错误? "运算符未定义参数类型条目,条目"

时间:2014-03-31 21:42:58

标签: java

我刚刚创建了一个插入方法来对数组进行排序,这是我在该方法中完成的代码;

public static void insertionSort (Entry[] array2){
    for (int i =0; i < array2.length; i++){
        Entry values = array2[i];
        int j = i-1;
        while (j >=0 && array2[j] > values){
            array2[j+1] = array2[j];
            j = j-1;
        }
        array2[j+1] = values;
    }
}

2 个答案:

答案 0 :(得分:2)

问题在于:

while (j >=0 && array2[j] > values){

您正在将两个类型为Entry的值与'&gt;'进行比较,因此无法将它们进行比较。

如果您使用的是Map.Entry,它不会实现Comparable,所以即使compareTo也会失败。想想你要比较的内容,键或值?

答案 1 :(得分:0)

如果您的Entry班级实施Comparable,那么您应该替换

array2[j] > values

array2[j].compareTo(values) > 0

...因为Java不允许运算符重载,所以你必须调用compareTo方法。