Prima di tutto ti avviso che hai sbagliato a premere e hai creato una nuova discussione al posto di rispondere alla precedente...eheheh....

Allora la risposta al tuo perchè è semplice, il Vector non è come gli array è una struttura dinamica, che può contenere qualsiasi tipo di oggetto.
Essendo dinamico ogni volta che crei un "cassetto" con il metoto add() semplicemente lui aumenta la dimensione del vector che all'inizio non possiede cassetti quindi il tuo cassetto 9 all'inizio non esiste, tu aggiungi il primo e poi cerchi di mettere un numero nel cassetto 9 che non è ancora stato creato. Per poter fare questa operazione prima dovresti creare i cassetti dalla posizione 2 alla posizione 9.
Spero ciò che ho scritto non sia troppo caotico, la cosa è più semplice di quanto lo sia scriverla...

Tra l'altro nel codice che hai postato non usi nemmeno il metodo add per aggiungere l'elemento al Vector... :master:

Per mettere i dati nelle posizioni 0, 9, 18 io farei così:

codice:
for(int i=0; i<27; i++)
   if ((i==0) || (i==9) || (i==18))
      mioVettore.add(primo);
   else
      mioVettore.add(null);
Successivamente se devi aggiungere qualcosa in un cassetto che già hai creato qui (ad esempio nel cassetto 3) puoi usare il metodo set:

codice:
mioVettore.set(3, valoreDaInserire);
Sicuramente poi ci sarà anche un modo più rapido ma al momento di prima mattina non mi viene in mente.

Ciao.