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.
Ich habe eine Klasse "Liste" mit Konstruktor, Getter und Setter Methoden.
Weiter habe ich eine Klasse "Verwaltung", mit der main Methode. In dieser Klasse habe ich dann ein Klassen-Objekt, der Klasse "Liste":
Liste l = new Liste("", "").
In entsprechender Methode lese ich dann die Attribute ein und übergebe diese an das Objekt:
System.out.println("Gebe Namen ein: ")
String n = in.readLine()
System.out.println("Gebe Nummer ein: ")
int nu = Integer.parseInt(in.readLine())
l = new Liste(n, nu).
Und weise dem Vektor das Objekt zu:
v.addElement(l).
Wie kann ich denn jetzt das Objekt aus dem Vektor ausgeben? mit:
System.out.println(v.firstElement());
klappt es nicht?
1.) Wenn du geholfen bekommen möchtest, bitte immer die Fehlermeldung dazuposten. Warum klappt es nicht?
2.) Benutz lieber ArrayList statt Vector, ist neuer (schneller...)
wobei in System.out.println() glaub die toString()-methode des übergebenen Objekt ausgegeben würde d.h. du müsstest sie in deiner klasse Liste überschreiben so dass sie halt das ausgibt was du willst
btw. vllt auch etwas bessere namen als n oda nu nehmen...
Wenn eine Klasse die toString() MEthode nicht überschreibt, kommt immer sowas raus.
(das println von System.out ruft nämlich auf das übergebene Object toString() auf, um es ausgeben zu können)
Du müsstest in deiner selbserstellten Klasse die toString() Methode überschreiben...
Vector = Threadsicher (syncronized). Dadurch ist es ein wenig langsamer als ArrayList.
Zu sagen, dass man lieber ArrayList nehmen soll kommt dann wohl eher auf den Anwendungsfall an.
Das kannte ich in dieser Form noch nicht, aber dadurch, dass sie ja nun auch synchronisiert wird, muss sich doch die Performance verschlechtern. Ist sie synced immer noch schneller als Vector?
Keine Ahnung. Wahrscheinlich nicht. Aber das ist völlig egal.
Vector ist deswegen hässlich, weil sich diese Klasse erst nachträglich in das Java-Collections-Framework eingegliedert wurde ("has been retrofitted" steht in den API-Docs). Einige Methoden sind dadurch z.B. überflüssig geworden, müssen aber trotzdem noch mitgeschleift werden aus Kompatibilitätsgründen.
Ich bin mir nicht sicher, WAS genau du da gemessen hast. Microbenchmarks sind immer so eine Sache... (Je nachdem, was man zeigen will, kann man für Vector einen Geschwindigkeitszuwachs von 0.6% bis 50% hindengeln). Ein möglicher Grund für schlechtere Performance ist natürlich, dass bei der SynchronizedList ALLE Aufrufe "weiterdelegiert" werden. Aber ich finde, man kann durchaus einen Vector statt einer SynchronizedList verwenden, wenn (und NUR wenn) man den Vector NUR über das List-Interface anspricht....