所以我在这里看到一个例子如何使用Comparator接口对ArrayList进行排序,所以我试了一下.使用Strings它完美地工作,但是我想要将一个变量排序为Integer,它将无法编译,说"int不能被解除引用".
我该怎么做才能使这个工作并允许我按分数变量对ArrayList进行排序?
这是我的代码:
public class ScoreComparator implements Comparator<Review> {
@Override
public int compare(Review o1, Review o2)
{
return o1.getScore().compareTo(o2.getScore());
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
你不能在ints 上调用方法; 没有compareTo办法打电话.这将是盒装Integer类型,但拳击将是矫枉过正.
如果你使用Java 7+,你应该写
return Integer.compare(o1.getScore(), o2.getScore());
Run Code Online (Sandbox Code Playgroud)
...否则你或多或少需要写作
if (o1.getScore() < o2.getScore()) {
return -1;
} else if (o1.getScore() > o2.getScore()) {
return 1;
} else {
return 0;
}
Run Code Online (Sandbox Code Playgroud)