Almeno un elemento dentro a quel Vector è un array di String. Lo dice l'eccezione: [Ljava.lang.String è un array di stringhe.

Poi, richiamare il toString() su un oggetto String è piuttosto inutile... è già una stringa!

Questo:
codice:
finale[i] = ((String) temp.elementAt(i)).toString();
è perfettamente equivalente (solo meno performante) a questo:

codice:
finale[i] = (String) temp.elementAt(i);
Ciao.