У меня есть собственный, относительно сложный компаратор строк и большой список строк (~ 100 строк, которые уже пытались уменьшить, но тогда проблема не воспроизводима), где их сортировка вызывает вышеупомянутую ошибку при попытке сортировки с Java 7. I предположим, что правилоОтладка «Метод сравнения нарушает общий контракт!»
if a < b and b < c then a < c
может быть нарушен. Каков наилучший способ найти образец, который нарушает договор?
Можете ли вы разместить свой реальный код? –
У вас есть * любые * юнит-тесты для вашего компаратора? – Raedwald
Не уменьшайте список; вместо этого уменьшите * компаратор *, шаг за шагом, одновременно воспроизводя ошибку с тем же набором входных данных. Затем опубликуйте * минимальный * компаратор, который все еще страдает от проблемы. Однако в этот момент это может стать для вас очевидным. –