Javaのソート異常な比較方法は、その一般的な契約に違反します

私は、コードのいくつかの並べ替えを書いて、時間のO2 O1オブジェクトの始まりは、開始時間未満であることを意味するO1、O2の順序を交換していない、そうでない場合は交換順序

        (。。o1.getTimeStart()getTime()<o2.getTimeStart()getTime()){場合は
          -1を返します。
        }他{ 
          1を返します。
        }        

しかし、最大の実行に異常情報が前に遭遇したことはありません

java.lang.IllegalArgumentExceptionが:比較方法が一般的な契約に違反します!
	java.util.TimSort.mergeLo(TimSort.java:777)で
	java.util.TimSort.mergeAt(TimSort.java:514)で
	java.util.TimSort.mergeForceCollapseで(TimSort.java:457)
	java.utilので。 TimSort.sort(TimSort.java:254)
	java.util.Arrays.sortで(Arrays.java:1438)

直接処理として、JDK7後に新しいソーティングアルゴリズムTimSort、2に等しい値のない決意を交換するので、異常報告情報の検討後。

その後の補足的な詳細

おすすめ

転載: www.cnblogs.com/guolaoshi/p/11490878.html