Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Unterschied zwischen ArrayList und Vector

Empfohlene Antworten

Veröffentlicht

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

Hallo,

eine ArrayList ist nicht synchronisiert. Ein Vector schon.

=> Vector minimal langsamer

Gruß Jaraz

@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

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

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".

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.