亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java.lang.IllegalArgumentException:比較方法違反了它的一般約定。

瀏覽:99日期:2024-04-24 13:22:54
如何解決java.lang.IllegalArgumentException:比較方法違反了它的一般約定。?

您的compare()方法 。如果A == B和B == C,則A必須等于C。

現在考慮這種情況:

對于A,B和C,假設containsKey()方法返回以下結果:

childMap.containsKey(A.getID()) 退貨 truechildMap.containsKey(B.getID()) 退貨 falsechildMap.containsKey(C.getID()) 退貨 true

另外,考慮訂購A.getId()!= B.getId()。

所以,

A并B返回0,因為外部if條件為false=>A == BB并C返回0,因為外部if條件為false=>B == C

但是,A和C可以根據塊內的測試返回-1或。因此,。這違反了傳遞原則。1``if``A != C

我認為,您應該在else塊內添加一些條件,該條件類似于塊內的執行檢查if。

解決方法

您好,以下是我的比較器的比較方法。我不確定是什么問題。我在堆棧溢出時查找了其他類似標題的問題和答案,但不確定我的方法有什么問題,但我一直在獲取java.lang.IllegalArgumentException:比較方法違反了它的一般約定!

任何幫助將不勝感激

public int compare(Node o1,Node o2){ HashMap<Integer,Integer> childMap = orderMap.get(parentID); if(childMap != null && childMap.containsKey(o1.getID()) && childMap.containsKey(o2.getID())) {int order1 = childMap.get(o1.getID());int order2 = childMap.get(o2.getID());if(order1<order2) return -1;else if(order1>order2) return 1;else return 0; } elsereturn 0;}

添加我得到的異常

java.lang.IllegalArgumentException: Comparison method violates its general contract!at java.util.TimSort.mergeLo(TimSort.java:747)at java.util.TimSort.mergeAt(TimSort.java:483)at java.util.TimSort.mergeCollapse(TimSort.java:410)at java.util.TimSort.sort(TimSort.java:214)at java.util.TimSort.sort(TimSort.java:173)at java.util.Arrays.sort(Arrays.java:659)at java.util.Collections.sort(Collections.java:217)

標簽: java
相關文章:
主站蜘蛛池模板: 久久要| 边吃奶边弄进去男女视频 | 生活毛片 | 毛片大全在线 | 欧美精品国产一区二区 | 黄色小视频在线免费观看 | 19国产精品麻豆免费观看 | 41sao.can在线观看国产 | 日韩欧美一区二区三区在线观看 | 国产污视频在线播放 | 牛牛在线 | 青青草99久久精品国产综合 | 久久久久国产精品免费 | 亚洲久久网站 | 日本久久久久亚洲中字幕 | 国产1区二区| 手机看片国产高清 | 欧美一级毛片在线播放 | 秘书上班和老板啪啪中文字幕 | 久久婷婷是五月综合色狠狠 | 日韩欧美二区在线观看 | 爱呦视频在线播放网址 | 黄色国产在线视频 | 久热这里只精品99re8久 | 中文字幕欧美成人免费 | 免费观看的黄色网址 | 国产精品美女福利视频一区 | 免费观看欧美一区二区三区 | 在线免费观看黄视频 | 久久精品成人免费看 | 国产精品成人免费综合 | 欧美中文字幕一二三四区 | 国产福利视频一区二区微拍视频 | 国产大片免费看 | 国产闫盼盼私拍福利精品视频 | 国产精品66福利在线观看 | 国产综合精品日本亚洲777 | 久久精品免费一区二区视 | 欧美精品一区视频 | 1769国产精品一区2区 | 91在线网址|