【发布时间】:2011-10-16 22:17:18
【问题描述】:
我有一个 A 类型的对象列表,我必须为 A 的一个字段排序它,它是 String 类型的。
public class A{
public String field1;
public Integer field2;
...
}
如果我必须订购 int 字段,我会这样做:
Collections.sort(listOfA, new Comparator<A>() {
public int compare(A p1, A p2) {
return p1.field2 - p2.field2);
}
});
但不幸的是需要按String类型的字段排序。
我该怎么做?
【问题讨论】:
-
在
compareTo方法中使用减法通常很危险,因为整数溢出。请改用 Google Guava 中的Ints.compare。 -
@Roland 或只是
>=和< -
是的,但在
<=>的情况下,您必须明确说明运算符和结果。我发现写return Ints.compare(a, b)更容易。
标签: java string comparator