Collezioni: perché i vettori non sono più utilizzati ma sono ancora in circolazione?

3

Sto scrivendo del codice per fare alcuni lavori SSH su una macchina remota e uno dei metodi che sono (obbligato a) usando restituisce un tipo di vettore. Ho imparato a conoscerli diversi anni fa ma non ho mai avuto la possibilità di usarli fino ad ora.

Quello che so di loro è

  1. Non sono thread-safe
  2. Sono molto vecchi e sono deprecati (Netbeans mi avverte che è una "raccolta obsoleta")

Non essere thread-safe sembra non essere un grosso problema se stai attento a questo. ma non penso sia abbastanza per licenziarli. Mi manca qualcosa?

Modifica

Sembra che abbia toccato un problema serio qui con Vettori obsoleto (deprecato potrebbe non essere la parola giusta), quello che voglio sapere è perché i vettori sono così evitati in primo luogo

    
posta svarog 15.06.2017 - 14:14
fonte

1 risposta

4

Nella fonte di Java8 Vector, non vi è alcuna notifica depracata.

C'è il seguente commento nell'intestazione:

Unlike the new collection implementations, {@code Vector} is synchronized. If a thread-safe implementation is not needed, it is recommended to use {@link ArrayList} in place of {@code Vector}.

Inoltre è possibile utilizzare Collections.synchronisedList () con ArrayList come parametro per sostituire ciò che un vettore è in grado di fare.

Altrimenti, nessun vettore funziona bene.

Se proprio non ti piace, fallo:

List l = new ArrayList(myFunctionThatReturnAVector());
    
risposta data 15.06.2017 - 14:21
fonte

Leggi altre domande sui tag