Exception:Comparison method violates its general contract!
2016-12-21 17:52
609 查看
在项目中,数据后台查询一些数据时偶然出现这个漏洞,错误信息如下:
报错语句如下:
,经百度得知,使用比较器时,在做比较的两个变量相同时应该返回0,如果不返回0,则在一些特殊情况下会造成排序出错。具体解释,这里就不列举了,下面是引用文章的链接
关于TimSort排序的原理解释
严重: Servlet.service() for servlet [springMVC] in context with path [/ice] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Comparison method violates its general contract!] with root cause java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeHi(TimSort.java:899) at java.util.TimSort.mergeAt(TimSort.java:516) at java.util.TimSort.mergeCollapse(TimSort.java:439) at java.util.TimSort.sort(TimSort.java:245) at java.util.Arrays.sort(Arrays.java:1512) at java.util.ArrayList.sort(ArrayList.java:1454) at com.liyunet.service.functional.impl.IPDataMonitorServiceImpl.getIpDataByFetchedOrEnterpriseOrEvaluation(IPDataMonitorServiceImpl.java:160)
报错语句如下:
infoVO.sort((IPInfoCompletionVO v1, IPInfoCompletionVO v2) -> v1.getDegreeOfCompletion()<v2.getDegreeOfCompletion()?1:-1);
,经百度得知,使用比较器时,在做比较的两个变量相同时应该返回0,如果不返回0,则在一些特殊情况下会造成排序出错。具体解释,这里就不列举了,下面是引用文章的链接
关于TimSort排序的原理解释
相关文章推荐
- 关于IllegalArgumentException: Comparison method violates its general contract!
- Java Exception(Comparison method violates its general contract)
- java.lang.IllegalArgumentException: Comparison method violates its general contract!
- 解决java.lang.IllegalArgumentException: Comparison method violates its general contract!
- 关于JDK7的IllegalArgumentException:Comparison method violates its general contract
- Java 异常解决之java.lang.IllegalArgumentException: Comparison method violates its general contract!
- java.lang.IllegalArgumentException: Comparison method violates its general contract!
- Comparison method violates its general contract Exception
- java.lang.IllegalArgumentException: Comparison method violates its general contract!
- java.lang.IllegalArgumentException: Comparison method violates its general contract!
- Java 异常解决之java.lang.IllegalArgumentException: Comparison method violates its general contract!
- java.lang.IllegalArgumentException: Comparison method violates its general contract!
- Java 错误解决之java.lang.IllegalArgumentException: 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
- java比较器报 Comparison method violates its general contract!异常
- Comparison method violates its general contract
- 排序遇到问题 JDK7的Comparison method violates its general contract
- 这个坑,你要注意:Comparison method violates its general contract!