Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [JAVA] Vector e List

  1. #1
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447

    [JAVA] Vector e List

    La domanda sarà banale ma quando è consigliabile utilizzare una Lista piuttosto che un Vector e viceversa?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Per Java c'e' un forum apposito ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Sì lo so.. ho sbagliato a postare ed ho anche già contatto un moderatore per farla spostare.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Vector e List

    Originariamente inviato da Pacio88
    La domanda sarà banale ma quando è consigliabile utilizzare una Lista piuttosto che un Vector e viceversa?
    Per lista intendi ArrayList??
    Le classi ArrayList e Vector sono entrambe implementazioni concrete della interfaccia List. Concettualmente fanno la stessa identica cosa, cioè una collezione che contiene una sequenza ordinata di elementi ed entrambe sono basate internamente su un array.

    Ci sono alcune differenze "tecniche":
    - Vector ha i metodi synchronized, ArrayList no
    - Vector è una collezione "legacy" mantenuta ovviamente per compatibilità. È più "vecchia" rispetto ad ArrayList e ha dei metodi in più come elementAt(), removeAllElements() (e altri) che non sono inerenti alla interfaccia List
    - Quando l'array interno non è più sufficiente, viene istanziato un nuovo array più grande. Per Vector è generalmente 2 volte più grande, per ArrayList è 1,5 volte più grande.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Sì scusami per List intendevo appunto ArrayList.
    Ti ringrazio per la spiegazione tuttavia non ho molto capito cosa intendi dire quando affermi che Vector è una collezione "legacy".

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Pacio88
    non ho molto capito cosa intendi dire quando affermi che Vector è una collezione "legacy".
    "legacy": legato, lascito; eredità: to leave a -, fare un legato, lasciare in eredità; - duty, imposta di successione

    Insomma .. Vector (come Hashtable) è stato presente fin dal principio, già dal JDK 1.0. Poi con il JDK 1.2 è stato introdotto quello che si chiama "Collections Framework", che ha fornito le interfacce List, Map, ecc... e le varie implementazioni concrete ArrayList, HashMap, ecc...

    Beh .. Vector è ancora lì ... non ci pensano minimamente a eliminarlo! Nonostante abbia una API che differisce un pochino da ArrayList (quanto ho detto prima) ed è synchronized. Hanno solo fatto un "retrofit" per fare in modo che Vector implementi List.

    Se sviluppi cose nuove, meglio ArrayList (e se ne vuoi ottenere la versione synchronized puoi ottenerla tramite "wrapping" usando Collections.synchronizedList() ). Se devi avere a che fare con API che richiedono Vector, beh ok. Ad esempio il JList di Swing ha un costruttore che riceve un Vector.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.