TGViewer
Библиотека джависта | Java, Spring, Maven, Hibernate Библиотека джависта | Java, Spring, Maven, Hibernate @javaproglib · 22K subscribers
Post #7878 947
🧠 Почему a.age() - b.age() может сломать сортировку

Часто встречается такой Comparator:


list.sort((a, b) -> a.age() - b.age());


Проблема — переполнение int.

🔴 Например:


Integer.MIN_VALUE - 1
// Integer.MAX_VALUE


Из-за этого компаратор может вернуть неправильный знак, и сортировка нарушит порядок.

🔴 Надёжнее:


list.sort(Comparator.comparingInt(User::age));


🔴 А если нужна дополнительная сортировка:


list.sort(
Comparator.comparingInt(User::age)
.thenComparing(User::name)
);


📌 Для сравнения чисел используйте comparingInt, comparingLong или comparingDouble, а не ручное вычитание.

══════ Навигация ══════
ВакансииЗадачиСобесы

🐸 Библиотека джависта
  • 👍 11
  • ❤ 1
More from @javaproglib
  1. Sep 19, 2026🤯 Collectors.teeing — две агрегации в одном collect Нужно получить средний возраст и коли…
  2. Sep 18, 2026══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта
  3. Sep 17, 2026⚡️⚡️Joker 2026: что происходит с профессией разработчика Индустрия разработки проходит чер…
  4. Sep 17, 2026🧠 Что выведет код? ❤️ [1, 2, 3, 4] 🔥 [2, 4] 👍 [1, 3] 👾 ConcurrentModificationException…
  5. Sep 16, 2026🛠 computeIfAbsent — кэш и группировка без if Нужно положить значение в список по ключу. О…
  6. Sep 15, 2026❓ Как правильно определять границы сервисов в микросервисной архитектуре? Один из недооцен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →