Java 如何修复此错误&引用;未定义参数类型项的运算符,entry";

Java 如何修复此错误&引用;未定义参数类型项的运算符,entry";,java,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){

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

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;
    }
}
publicstaticvoidinsertionsort(条目[]array2){
for(int i=0;i=0&&array2[j]>值){
阵列2[j+1]=阵列2[j];
j=j-1;
}
array2[j+1]=值;
}
}
问题在于:

while (j >=0 && array2[j] > values){
您正在将Entry类型的两个值与“>”进行比较,它们不能像那样进行比较


如果您使用的是Map.Entry,它不会实现Comparable,因此即使compareTo也会失败。考虑您想要比较的是什么,键还是值?

如果您的
条目
类实现了
可比
,那么您应该替换

array2[j] > values


…因为Java不允许运算符重载,所以您只需调用
compareTo
方法。

我在“array2[j]>values”下面有一条红线,它应该如何解释
Entry>Entry
?很抱歉,我漏掉了,我有一个名为Entry的类,它从可比较的接口实现,并且有一个泛型(“”)。那么你应该使用
array2[j]。比较(值)
你也可以发布你入门类的代码吗?很抱歉,我是新手,有什么我可以查到的来了解更多信息吗?@user3443890当然。可能会有所帮助。你到底想比较什么?我正试图使用刚才的插入方法对目录中添加的条目进行排序created@user3443890如果条目来自映射,则可能需要按键对其进行排序。Comparison方法取决于键的类型,但您可能需要类似array2[j].getKey().Comparieto(values.getKey())>0的内容来自Arraysorry,因此在我的从Compariable实现的entry类中的Comparieto方法中,该方法中应该包含什么内容取决于entry类中的内容,你还没有给我们看。
array2[j].compareTo(values) > 0