Sto studiando la programmazione generica e non mi è chiara una cosa:

Se devo utilizzare una struttura dati che so andrà a contenere tipi primitivi, devo comunque usarla con l'autoboxing di questi tipi primitivi?

Ad esempio, un vettore che conterra integer devo definirlo così?

codice:
Vector<Integer> pippo = new Vector();
Oppure così?

codice:
Vector pippo = new Vector(); // (unsafe operation)
E' evidente che funziona in entrambi i casi.

Sono vettori che lavorano privatamente e ho la certezza che nessuno ci aggiungerà dati diversi da int.


Quale scelta è preferibile? Utilizzando l'autoboxing ho un rallentamento del programma e uno spreco di memoria o è trascurabile anche su strutture dati molto grandi?