Локально всё ок, на проде — IllegalArgumentException: Comparison method violates its general contract! 👇
📦 Задание — code review
Сортируем товары: сначала в наличии, потом по убыванию рейтинга.
products.sort((a, b) -> {
if (a.isInStock() && !b.isInStock()) return -1;
if (!a.isInStock() && b.isInStock()) return 1;
return (int) (b.getRating() - a.getRating()); // rating: double
});▪️ Объясни
— Почему этот компаратор нарушает контракт (нетранзитивность / нарушение антисимметрии) и почему падает только на достаточно больших списках.
— Как переписать, чтобы было корректно и читаемо.
Ставьте → 🔥, если нравится формат. Если нет → 🌚
💬 Решения под спойлер. Сравним, какое будет лучше.
🐸 Библиотека собеса по Java
#practise