Мне нужно сравнить два объекта Integer
(не int
). Каков канонический способ их сравнения?
Integer x = ...
Integer y = ...
Я могу думать об этом:
if (x == y)
Оператор ==
сравнивает только ссылки, поэтому это будет работать только для более низких целых значений. Но, возможно, авто-бокс в ногах...?
if (x.equals(y))
Это выглядит как дорогостоящая операция. Существуют ли какие-либо хэш-коды, рассчитанные таким образом?
if (x.intValue() == y.intValue())
Немного подробней...
EDIT: Благодарим за ваши ответы. Хотя я знаю, что делать сейчас, факты распространяются на все существующие ответы (даже на удаленные:):), и я действительно не знаю, какой из них принять. Поэтому я приму наилучший ответ, который касается всех трех возможностей сравнения или, по крайней мере, первых двух.