Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wie bist du denn drauf :autsch: ?
@pisco: Vector ist "veraltet", wird heute nur noch als synchronisierte Liste verwendet. Wenns nicht um Multithreading geht, kann man eine andere Implementierung der List verwenden, nämlich ArrayList (ArrayList (Java Platform SE 6)). Diese verwendet intern auch nicht mehr als ein Array. Du kannst so deine Liste verwenden:
Java:
List<Objekttyp> list = new ArrayList<Objekttyp>();
for (int i = 0; i < 100; i++) {
list.add(new Objekttyp(i));
}
Ich wollte nur antworten auf die Frage. Blaue Auge kannst dir gerne sparen, das ist nicht notwendig. Es ist doch so, das mit new immer neue Objekte erstellt werden, die immer anders sind? :noe:
gut ... ob man nun Vector oder sonst ne implementierung von List nimmt ... sollte eigentlich egal sein ...
ich hab nur Vector als beispiel genommen weil ich damit selbst viel arbeite *ja .. unter J7 ... ansonsten erkläre mir bitte fachlich konkret was an Vector so veraltet ist ?*
Vector ist eine einfach und zuverlässig implementierung von List
sein größe ist dynamisch und man kann auf die elemente in der reihenfolge zugreifen wie sie hinzugefügt wurden ..
außerdem sollte sich Vector von ArrayList nicht so groß unterscheiden *sorry ... hab grad andere dinge zu tun als mich durch den source zu wühlen um die unterschiede rauszukramen*
@emailundlos
sorry ... aber dein humor trifft mich nicht ...
warum muss man denn einem objekt einen parameter übergeben nur um dieses von anderen der selben klasse unterscheiden zu können ?
wichtig ist nur das wenn du zwei verschiedene objekte hast auch zwei verschiedene referenzen auf diese hast um halt mit der einen referenz auf das eine objekt und mit der anderen auf das andere objekt zugreifen zu können
@TO
rein zufällig weis ich das es in PHP sowas gibt
PHP:
$$var_counter
womit du eine variable erzeugen kannst welche als nahmen den inhalt von $var_counter hat ...
so etwas ist in JAVA nicht möglich
wenn du eine variable als
Java:
<T> vc;
deklarierst ... dann heißt diese auch so
nur weil du einen counter davor hast der als
Java:
int c;
deklariert ist heißt es nicht das dann aus "vc" -> "v1", "v2" usw wird ...
da hast du etwas missverstanden
*bin auf php gekommen weil du in deinem post php-tags verwendet hast*
gut ... ob man nun Vector oder sonst ne implementierung von List nimmt ... sollte eigentlich egal sein ...
ich hab nur Vector als beispiel genommen weil ich damit selbst viel arbeite *ja .. unter J7 ... ansonsten erkläre mir bitte fachlich konkret was an Vector so veraltet ist ?*
Vector ist eine einfach und zuverlässig implementierung von List
sein größe ist dynamisch und man kann auf die elemente in der reihenfolge zugreifen wie sie hinzugefügt wurden ..
außerdem sollte sich Vector von ArrayList nicht so groß unterscheiden *sorry ... hab grad andere dinge zu tun als mich durch den source zu wühlen um die unterschiede rauszukramen*
gut ... ob man nun Vector oder sonst ne implementierung von List nimmt ... sollte eigentlich egal sein ...
ich hab nur Vector als beispiel genommen weil ich damit selbst viel arbeite *ja .. unter J7 ... ansonsten erkläre mir bitte fachlich konkret was an Vector so veraltet ist ?*
Vector ist eine einfach und zuverlässig implementierung von List
sein größe ist dynamisch und man kann auf die elemente in der reihenfolge zugreifen wie sie hinzugefügt wurden ..
außerdem sollte sich Vector von ArrayList nicht so groß unterscheiden *sorry ... hab grad andere dinge zu tun als mich durch den source zu wühlen um die unterschiede rauszukramen*
du brauchst keinen sourcen um unterschiede zu finden... javadoc reicht schon
"As of the Java 2 platform v1.2, this class was retrofitted to implement the List interface, making it a member of the Java Collections Framework. Unlike the new collection implementations, Vector is synchronized. "
also nix mit java7, sondern schon seit mehr als 10Jahre ist es so, dass Vector in den seltesten Faellen die richtige Wahl einer Listimplementierung ist. Vector gibt es nur aufgrund der rueckwaertskompatibilitaet.
Inhaltlich hab ich überhaupt nichts gegen deine Posts, aber bitte überdenk mal die Art, mit welcher du dich mitteilst. Wir waren doch alle auch mal Anfänger und stellten "dumme" (eben nicht!) Fragen
@pisco: Mir ist aufgefallen, dass wir deine Frage noch nicht beantworteten, warum du denn ein Vector (oder ArrayList, LinkedList oder sonst beliebige List) an Stelle des Arrays verwenden sollst.
Das Array in Java ist ein Sprachfeature, welches leider weder besonders objektorient ist, noch sich gut mit anderen gewissen Sprachfeatures verträgt (Generics z.B.).
In Java gibts IMHO genau drei Gründe, warum man Arrays verwenden sollte. 1. Man lernt Java und muss Arrays kennenlernen 2. Man hat (z.B. auf mobilen Endgeräten) Speicher- oder CPU-Engpässe - dies ist aber wirklich der Ausnahmefall 3. Man implementiert einen eigenen Datentypen (wie z.B. ArrayList oder Vector).
In allen anderen Fällen kann man eine List (Java Platform SE 6) verwenden.
In der Praxis verwendet man meist eine folgender vier Implementierungen (welche in der Java API sind):
- ArrayList (Java Platform SE 6) ist eine Liste, welche im Hintergrund mit einem Array arbeitet
- Vector (Java Platform SE 6) ist fast das gleiche, allerdings ist alles synchronized und darum langsamer. Wird - wie bereits erwähnt - nur für Multithreading verwendet.
- LinkedList (Java Platform SE 6) ist eine Implementierung einer Linked List, also jedes Element zeigt auf das nächste Element (und bei einer DoubleLinkedList noch auf den Vorgänger). Somit sind Zugriffe auf einen beliebigen Index langsamer als bei der ArrayList.
- Stack (Java Platform SE 6) ist eine Implementierung eines Stacks, welche auf Vector basiert.