Auslesen eines Elementes von Vector-Objekten mit Iterator?!
-
Moin moin!
Ich habe mal einen kurzen Quelltext geschrieben, um mein Problem darzustellen. Ich lege ein Vector von Objekten an, in diesem Fall von der Klasse adress. Nun möchte ich in einer Funktion oder der Einfachheit halber in main() nur ein Element aller Objekte anzeigen. In diesem Fall z.B. nur die Vornamen aller Vector-Objekte. Möchte das mit einem Iterator machen!
Kann mir da wer helfen oder einen besseren Weg vorschlagen?
Vielen Dank allen Helfenden.
import java.util.*; import java.io.*; class adress { String Name; String Vorname; /*...*/ public adress(String vn, String nn) { Name = nn; Vorname = vn; } } class test { static public void main(String args[]) { Vector adressbuch = new Vector(); adress a1 = new adress("Bill", "Gates"); adressbuch.add(a1); adress a2 = new adress("George", "Bush"); adressbuch.add(a2); /*...*/ // Augabe ?! Enumeration e = adressbuch.elements(); while (e.hasMoreElements()) System.out.println("" + e.nextElement()); // Gibt Blödsinn aus! // Angenomme ich möchte nur die Vornamen ansprechen, // WIE kann ich das machen? // Von einen Vector von Objekten will ich nur einzelne // Elemente des Objektes ansprechen. } }
-
lol ... es wäre nicht schlecht, eine get() Methode an den Objekten aufzurufen
also in die Klasse adress
public String getName() { return name; }
in der Klasse Test
//deine Schleife adress a = (adress) e.nextElement(); System.out.println(a.getName());
lg kati
-
Hallo Kati!
Es hat doch tatsächlich gleich geklappt. Da sucht man und probiert man Ewigkeiten und dann ist die Lösung doch so einfach und unkompliziert.
Ich danke dir sehr.
Björn
-
Hallo cbk18
Ja Programmierfehler finden ist das blödeste was es am Programmieren gibt
Gut das ich gar keine Fehler machejetzt mal spass bei seite.
Wenn du Container Objekte hast wie ein Vector, dann merke dir eins.
Immer wenn du ein Element aus dem Vector Object entnimmt dann muss du es Downcasten. Also das mit dem Klammern drum.Falls du sehr viele Objecte im Vector hast dann empfehle ich dir das ganze mit einer for schleife zu realisieren.
Die ist schneller als die Emumeration Methode.Viel spass.
-
Immer wenn du ein Element aus dem Vector Object entnimmt dann muss du es Downcasten. Also das mit dem Klammern drum.
<haarspalt>
Nicht, wenn du Instanzen vom Typ Object in eine Collection steckst
</haarspalt>
-
<haarspalt>
Nicht, wenn du Instanzen vom Typ Object in eine Collection steckst
</haarspalt>Das weis ich doch auch.
Ausserdem ist ein Downcast nach einen Object nicht möglich.
Das wäre dann ein Upcast.Hast aber schon recht Object nach Object braucht kein Downcast.
-
Danke euch beiden.
Muss ich gleich mal ausprobieren.
Kämpfe hier aber zur Zeit noch mit nem anderen Problem