Literatur

Vector

Eine sehr häufig verwendete Liste ist die Klasse Vector.  Ein Vector ist vergleichbar mit einem dynamischen Array: Die Größe kann sich zur Laufzeit ändern.  Objekte von Listen werden mit dem new-Operator erzeugt. Einige gängige Methoden der Klasse Vector, die Sie sich einprägen sollten, sind folgende:

public boolean isEmpty()
public E elementAt(int index)
public boolean add(E e)
public boolean add(int index, E e)
public boolean remove(int index)
public boolean remove(Object o)
public int size()
public void clear()

Die Methodennamen sprechen für sich: Mit add fügt man Elemente hinzu, mit remove entfernt man ein Objekt. Mit der Methode elementAt wird das Objekt an dem entsprechenden Index zurück gegeben. Mit der Methode size wird die Anzahl der im Vector vorhandenen Elemente zurückgegeben.

Die Methodenköpfe sind aus der Java API entnommen worden, deswegen steht dort hin und wieder mal als Datentyp ein großes E. Da man ab der Java Version 1.5 über sogenannte Generics auch den Datentypen für die Elemente von Collections (Listen, Vektoren, Maps...) angeben kann, wird E als Platzhalter für den Datentyp verwendet. Generics werden nicht in den Grundlagen behandelt, sondern werden erst an späterer Stelle erkärt.

Gibt man den Datentypen nicht an bzw. verwendet man eine frühere Java-Version, so sind die Elemente der Liste immer vom Typ Object. In diesem Fall muss nach dem Auslesen eines Elementes aus dem Vector noch eine Typumwandlung von Object zur eigentlichen Klasse des Objektes erfolgen, wenn man es als solches verwenden möchte.

Schauen wir uns ein Beispiel zu der Verwendung eines Vectors an.

public class Student
{
    // Attribute name und vorname eines Studenten
    String name,vorname;
    // Attribut matrikelnummer eindeutige Nummer
    int matrikelnummer;
    // Konstruktor für einen Studenten
    public Student(String name,String vorname,int matrikelnummer)
    {
        this.name = name;
        this.vorname = vorname;
        this.matrikelnummer = matrikelnummer;
    }
    // getter-Methode für die Matrikelnummer
    public int getMatrikelnummer()
    {
        return this.matrikelnummer;
    }

    public void gibDatenAus()
    {
        System.out.println(name+ ", "+vorname );
        System.out.println(matrikelnummer);
    }
}
 
// Import-Anweisung für unsere HashMap
import java.util.Vector;
 
public class VectorTest
{
    // main-Methode
    public static void main(String[] args)
    {
        Vector vec = new Vector();
        // Erzeugung von drei Studenten
        Student st1 = new Student("Topf", "Hans", 12345);
        Student st2 = new Student("Teller", "Hannes", 12323);
        Student st3 = new Student("Besteck", "Maxi", 12345);
        // Einfügen der Objekte st1, st2 und st3 in den Vector
        vec.add(st1);
        vec.add(st2);
        vec.add(st3);
        /* Hier sind alle Objekte in den Vector vec eingefügt worden */
        for(int i =0; i < vec.size(); i++)
        {
            ((Student)vec.elementAt(i)).gibDatenAus();
        }
        
    }
}

In dem obigen Beispiel werden drei Studenten erzeugt und dem Vector vec hinzugefügt. Anschließend lassen wir uns die Daten der im Vector enthaltenen Objekte ausgeben.