原文:java-collections.sort異常Comparison method violates its general contract!

異常信息 原因 JDK 中的Collections.Sort方法實現中,如果兩個值是相等的,那么compare方法需要返回 ,否則可能會在排序時拋錯,而JDK 是沒有這個限制的。 在 JDK 版本以上,Comparator 要滿足自反性,傳遞性,對稱性,不然 Arrays.sort, Collections.sort 會報 IllegalArgumentException 異常。 說明: 自反性 ...

2016-06-30 17:51 0 19683 推薦指數:

查看詳情

Comparison method violates its general contract

今天一同事采用Collections.sort 來對文件進行排序,出現 Comparison method violates its general contract 異常, 找了好久,才發現是實現接口Comparator 的類有問題, 在compare中沒有處理好兩個比較的對象相等的情況 ...

Wed May 09 00:24:00 CST 2012 0 19191
Comparison method violates its general contract!

  廢話少說,直接上報錯信息(如下圖)   最近公司app上有個列表時而報錯,時而不報,復現問題不是很容易,翻看了下日志才知道是排序的地方有問題,這還是我第一次遇到,具體定位:Collections.sort(xxx), 於是再看對應的compareTo方法 ...

Thu Nov 02 18:26:00 CST 2017 0 2635
記錄線上APP一個排序比較引發的崩潰 Comparison method violates its general contract!

最近在做產品需求的時候上線了一個新的產品需求,給用戶多了一種新的排序排序規則,更加方便用戶找到自己想要的東西。新版本發布后,QA 給我發了一個 線上崩潰 bug 鏈接,具體內容如下: 看到上面的鏈接,我有點懵逼了,就這排序還能給我搞出 bug 來?看到拋出的異常信息,也沒有見過,於是直接 ...

Mon Nov 15 06:33:00 CST 2021 0 296
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM