Feld

Die naheliegende Datenstruktur zur Verwaltung von Objekten ist das Feld. Es ist in Java bereits eingebaut und ist recht einfach zu nutzen.

Verwendung eines Felds

An dieser Stelle soll das Beispiel einer Schülerverwaltung wieder aufgegriffen werden. Eine entsprechende Klasse Schüler ist bereits im vorherigen Abschnitt (vgl. Objekte als Datenträger) entwickelt worden.

Die Erzeugung und Verwendung eines Feld über Schüler-Objekten verläuft analog zur Verwendung eines Felds über primitiven Datentypen (vgl. auch Abschnitt Felder).

Wie im Quelltext zu sehen ist, werden zunächst die Schüler-Objekte erzeugt und anschließend wie in einem Feld üblich an die entsprechenden Positionen gesetzt. Die Methode istVorhanden() zeigt exemplarisch den Durchlauf durch ein Feld.

public class Schuelerverwaltung {

    private Schueler[] meineschueler;

    public Schuelerverwaltung() {
        Schueler s1 = new Schueler("Otto",14);
        Schueler s2 = new Schueler("Susi",13);
        Schueler s3 = new Schueler("Hans",15);

        meineschueler = new Schueler[3];
        meineschueler[0] = s1;
        meineschueler[1] = s2;
        meineschueler[2] = s3;
    }

    public boolean istVorhanden(String suchname) {
        for (int i=0; i<meineschueler.length; i++) {
            Schueler derschueler = meineschueler[i];
            String name = derschueler.getName();
            if (name.equals(suchname)) {
                return true;
            }
        }
        return false;
    }

}

Diskussion

Vorteile:

  • Das Feld ist in Java eingebaut und kann ohne zusätzlichen Aufwand eingesetzt werden.
  • Der Zugriff ist auf jede Feldposition möglich. Damit kann wieder eine schnelle binäre Suche mit logarithmischem Aufwand realisiert werden.

Nachteile:

  • Das Feld ist statisch, d.h. seine Größe muss beim Erzeugen festgelegt werden. Dadurch könnte es entweder viel zu groß (Speicherverschwendung) oder viel zu klein (kein nachträgliches Einfügen möglich) sein.

Dem Nachteil der statischen Größe begegnen dynamische Datenstrukturen wie die Liste (vgl. Abschnitt Liste). Die ideale Kombination von schneller Suche und Dynamik stellt der Suchbaum dar (vgl. Abschnitt Suchbaum).

results matching ""

    No results matching ""