Zum Inhalt springen

Unterschied zwischen ArrayList und Vector


Empfohlene Beiträge

Geschrieben

Hallo Leute,

ich arbeite mich z.Zt. in Java ein und bin gerade bei Collections angelangt. Wie auch schon aus dem Titel dieses Threads zu erkennen ist, würde ich jetzt gerne den Unterschied zwischen einer ArrayList und einem Vector wissen.

Für mich sieht es danach aus, dass die beiden das gleiche machen, oder täusche ich mich da?

Gruß

Scherzkeks

Geschrieben

@Jaraz

Danke für die schnelle Hilfe! ;)

Ich habe auch noch etwas gefunden. So wie du schon geschrieben hast, ist der Vector synchronized, seine Methoden sind weitgehend als synchronized deklariert. Die ArrayList dagegen ist non synchronized.

Sollte von mehreren Threads gleichzeitig auf eine Liste zugegriffen werden, dann sollte man Vector verwenden. Wenn man allerding überwiegend lesenden Zugriff auf Listen hat, dann sollte man die ArrayList nehmen, weil sie die besten Ergebnisse in Bezug auf die Zeit bring.

Gruß

Scherzkeks

Geschrieben
Sollte von mehreren Threads gleichzeitig auf eine Liste zugegriffen werden, dann sollte man Vector verwenden. Wenn man allerding überwiegend lesenden Zugriff auf Listen hat, dann sollte man die ArrayList nehmen, weil sie die besten Ergebnisse in Bezug auf die Zeit bring.
Über den Einsatz von Vector lässt sich generell streiten. Ich persönlich halte ihn für quasi-deprecated. Er stammt aus der Uralt Java 1.0 Zeit vor dem Collections Framework und wird seitdem aus Kompatibilitätsgründen mitgeschleift.

Die synchronized Thematik lässt sich eleganter über einen Decorator lösen:



  List unsynchronizedList = new ArrayList();

  List synchronizedList   = Collections.synchronizedList(unsynchronizedList);

Generell ganz interessant:

http://java.sun.com/docs/books/tutorial/collections/index.html

Geschrieben

Ich habe auch irgendwo mal gelesen, das die Reihenfolge in einem Vektor nicht unbedingt beibehalten wird, in einer ArrayList schon?!?

D.h. die Reihenfolde in der du die Objekte in einer ArrayListe hinzufügst, ist auch bei auslesen genau gleich, bei einem Vektor könnten diese "verrutschen".

Geschrieben
Ich habe auch irgendwo mal gelesen, das die Reihenfolge in einem Vektor nicht unbedingt beibehalten wird, in einer ArrayList schon
Nein, vom Verhalten her sind beide gleich. Beide implementieren das Interface java.util.List und müssen sich daher an dessen Contract halten:

An ordered collection (also known as a sequence). The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the list.

Was du wahrscheinlich meinst ist der Unterschied zwischen java.util.List und java.util.Set.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...