Обобщенное программирование или generics – гибкая возможность написания универсальных классов.
Обобщенные классы могут работать с разными типами данных. Это упрощает разработку, не нужно создавать для каждого типа данных свой класс: IntArray, FloatArray, DoubleArray, ProductArray.
Можно написать один класс Array, правильным образом обобщив его, и он сможет работать с любыми требуемыми типами данных.