Переменная типа Integer
может быть нулевой.int
не может быть нулевым.Последний является примитивным типом, первый является ссылочным типом-оболочкой для работы с примитивами как с Объектом.Если вы используете это:
Entry<Integer, String> myEntry;
Тогда вы обязательно используете тип оболочки.Примитивы нельзя использовать в качестве параметров типа в Java, поэтому у вас не может быть, например, Entry<int, String>
(он не скомпилируется).