我有以下代码
import java.util.*;
public class Sorts {
public static void sort(ArrayList objects, Comparator<Car>) {
Comparator compareThing = new CarNameComparator();
int min;
Car temp;
for(int i = 0; i < objects.size() - 1; i++){
min = i;
for(int j = min+1; j < objects.size(); j++){
if(compareThing.compare(objects.get(i), objects.get(j))> 0){
min = j;
}
}
temp = (Car)objects.get(i);
objects.set(i, objects.get(min));
objects.set(min, temp);
}
}
}
我的IDE突出显示第3行末尾的右括号,说&#34;期望的标识符。&#34;
我不知道这意味着什么。这是一种静态方法,因此它不具有类型,并且它没有引用比较器,因为它具有标识符。我该怎么办?
答案 0 :(得分:4)
public static void sort(ArrayList objects, Comparator<Car> identifier)
您错过了函数参数中的参数名称。
答案 1 :(得分:1)
我不确定你要做什么。但是您必须为Comparator类型的传递参数指定标识符。我想你想做的是:
public static void sort(ArrayList objects, CarNameComparator compareThing) {
int min;
Object temp;
for(int i = 0; i < objects.size() - 1; i++){
min = i;
for(int j = min+1; j < objects.size(); j++){
if(compareThing.compare(objects.get(i), objects.get(j))> 0){
min = j;
}
}
temp = (Object)objects.get(i);
objects.set(i, objects.get(min));
objects.set(min, temp);
}
}
或者您可能只想删除参数并执行以下操作:
public static void sort(ArrayList objects) {
Comparator compareThing = new CarNameComparator();
int min;
Object temp;
for(int i = 0; i < objects.size() - 1; i++){
min = i;
for(int j = min+1; j < objects.size(); j++){
if(compareThing.compare(objects.get(i), objects.get(j))> 0){
min = j;
}
}
temp = (Object)objects.get(i);
objects.set(i, objects.get(min));
objects.set(min, temp);
}
}
如果您可以更具体地指定问题,则可能会有更好的答案。