我有一个应用程序列表,其中每个实体代表一个自定义对象。

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;
}

10-07 19:19
查看更多