【发布时间】:2012-05-12 05:27:11
【问题描述】:
我正在尝试将一些玩家与比较器通过他们获得的跑数进行比较。
System.out.println("Comparing: " + p2.getRuns() + " and " + p1.getRuns());
int newRESULT = intConvert(p2.getRuns()).compareTo(intConvert(p1.getRuns()));
System.out.println("Returns: " + newRESULT);
return newRESULT;
但是这会返回:
比较:25 和 0, 返回:2
比较:0 和 100, 返回:-1
比较:25 和 100, 返回:1
...因此以错误的顺序排列玩家。
第一个比较不应该返回 1、第二个 -1 和最后一个 -1 吗?
intConvert:
private static String intConvert(int x)
{
return "" + x;
}
【问题讨论】:
-
请注意,
compareTo不必返回 -1 或 1,它也可以返回更小或更大的值。基本上约定是: 0 表示较大。
标签: java int comparator dereference