Collections.sort出错 Comparison method violates its general contract!
2017-07-23 10:54
441 查看
Collections.sort排序:
Could not complete request java.lang.IllegalArgumentException: Comparison method violates its general contract!
原始排序代码:fcnodeList 里面存放对象
FCNodeResult ,nodecd是个int类型
Collections.sort(fcnodeList, new Comparator<FCNodeResult>() { @Override public int compare(FCNodeResult o1, FCNodeResult o2) { return o1.getNodecd() < o2.getNodecd() ? -1 : 1; } });
修改后代码:
Collections.sort(fcnodeList, new Comparator<FCNodeResult>() { @Override public int compare(FCNodeResult o1, FCNodeResult o2) { return o1.getNodecd().compareTo(o2.getNodecd()); } });
附加:
Java compareTo() 方法
compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。语法
public int compareTo( NumberSubClass referenceName )
参数
referenceName -- 可以是一个 Byte, Double, Integer, Float, Long 或 Short 类型的参数。返回值
如果指定的数与参数相等返回0。如果指定的数小于参数返回 -1。
如果指定的数大于参数返回 1。
实例
public class Test{ public static void main(String args[]){ Integer x = 5; System.out.println(x.compareTo(3)); System.out.println(x.compareTo(5)); System.out.println(x.compareTo(8)); } }编译以上程序,输出结果为:1
0
-1
相关文章推荐
- 关于jdk7中 使用Collections的排序方法时报Comparison method violates its general contract!异常
- 关于IllegalArgumentException: Comparison method violates its general contract!
- 图解JDK7的Comparison method violates its general contract异常
- (4.3.2.23) Compare报错: Comparison method violates its general contract!
- Android 开发报错 Comparison method violates its general contract!
- 这个坑,你要注意:Comparison method violates its general contract!
- Comparison method violates its general contract
- 比较器报错:Comparison method violates its general contract
- java.lang.IllegalArgumentException: Comparison method violates its general contract!
- Comparison method violates its general contract!
- 比较器报错:Comparison method violates its general contract
- Comparison method violates its general contract!
- 遇到问题----java----Comparison method violates its general contract异常
- Comparison method violates its general contract
- Exception:Comparison method violates its general contract!
- android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
- 遇到问题----java----Comparison method violates its general contract异常
- java.lang.IllegalArgumentException: Comparison method violates its general contract!
- Android碰到 "Comparison method violates its general contract" 异常的解决方法
- Comparison method violates its general contract!