Потому что int является примитивным типом. В качестве общих параметров могут использоваться только ссылочные типы.
Ответ 3
Короткий ответ заключается в том, что generics (например, ArrayList<Integer>) не принимают примитивные типы (int), только объекты (Integer).
Это связано с тем, что такие классы, как ArrayList, реализуются с использованием объектов. Поскольку каждый класс наследуется от Object, компилятор может просто подключать другие классы. Но примитивные типы (например, int) не наследуются от Object, поскольку они не являются классами. Таким образом, Sun/Oracle разработали класс Integer, чтобы помочь с этим.
Итак, короче: int не является Object.
Ответ 4
int является primitive. Это не Object.
Подробнее см. ссылку .
Ответ 5
int является примитивным типом данных, но Integer является классом, поэтому массив arrayList может принимать только ссылочные типы, поскольку его параметр не примитивный тип