Scherzkeks Geschrieben 22. November 2005 Geschrieben 22. November 2005 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 Zitieren
Jaraz Geschrieben 22. November 2005 Geschrieben 22. November 2005 Hallo, eine ArrayList ist nicht synchronisiert. Ein Vector schon. => Vector minimal langsamer Gruß Jaraz Zitieren
Scherzkeks Geschrieben 22. November 2005 Autor Geschrieben 22. November 2005 @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 Zitieren
perdian Geschrieben 22. November 2005 Geschrieben 22. November 2005 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 Zitieren
ExAzubi Geschrieben 22. November 2005 Geschrieben 22. November 2005 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". Zitieren
perdian Geschrieben 23. November 2005 Geschrieben 23. November 2005 Ich habe auch irgendwo mal gelesen, das die Reihenfolge in einem Vektor nicht unbedingt beibehalten wird, in einer ArrayList schonNein, 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. Zitieren
Empfohlene Beiträge
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.