我有一个应用程序列表,其中每个实体代表一个自定义对象。
List<String> Applications = new ArrayList<String>();
我有这样的Application类:
public Class Application
{
private String ApplicationName;
private int Priority
}
我需要对应用程序进行排序优先。请注意,“优先级”只能包含三个意志值,即分别为“高”,“中”和“低”的1、2和3。
我已经实现了Comparator对列表进行排序,如下所示:
Collections.sort(this.Applications, new Comparator<Application>()
{
@Override
public int compare(Application App1, Application App2)
{
return App1.Priority.compareTo(App2.Priority);
}
});
但是编译器给我这个错误:
Cannot invoke compareTo(int) on the primitive type int
最佳答案
如果您使用的是Java 7,请更换
return IA1.Priority.compareTo(IA2.Priority);
与
return Integer.compare(IA1.Priority, IA2.Priority);
...否则,您必须将其替换为
if (IA1.Priority < IA2.Priority) {
return -1;
} else if (IA1.Priority == IA2.Priority) {
return 0;
} else {
return 1;
}