我有一个应用程序列表,其中每个实体代表一个自定义对象。
List<String> Applications = new ArrayList<String>();
我的Application类是这样的:
public Class Application
{
private String ApplicationName;
private int Priority
}
我需要对应用程序w.r.t进行排序。优先。请注意,优先级只能包含三个值,即分别为高,中和低的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
答案 0 :(得分:4)
如果您使用的是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;
}