我刚刚创建了一个插入方法来对数组进行排序,这是我在该方法中完成的代码;
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;
}
}
答案 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
方法。