import java.util.Vector;

/*
  Vektor mit Elementen unterschiedlicher Datentypen
  Die beiden Klassen Kunde und Konto implementieren
  beide die Schnittstelle Druckbar. In den Vektor werden
  nur Elemente des Typs Druckbar eingefuegt.
  Dann findet Java in der Ausgabeschleife selbstaendig
  die richtige konkrete Ausgabemethode.
*/

public class Elemente2
{
   public static void main(String[] argv)
   {
      Vector v = new Vector(5,3);

      // Kunden-Elemente an v anfuegen
      v.addElement(new Kunde("Maier", "Franz", "Ulm"));
      v.addElement(new Kunde("Schmidt", "Fritz", "Essen"));
      v.addElement(new Kunde("Mueller", "Paul", "Berlin"));
      System.out.println("Kapazitaet nach 3 Elementen:" + v.capacity());

      v.addElement(new Kunde("Schmidt", "Otto", "Kiel"));
      v.addElement(new Kunde("Adel", "Suse", "Ulm"));
      v.addElement(new Kunde("Magg", "Eva", "Kiel"));
      System.out.println("Kapazitaet nach 6 Elementen:" + v.capacity());

      v.addElement(new Kunde("Zimmer", "Edith","Ulm"));

      // Konto-Elemente einfügen
      v.insertElementAt(new Konto(4711, 1234), 0);
      v.insertElementAt(new Konto(79033, 43210), 3);
      System.out.println("Kapazitaet nach 9 Elementen:" + v.capacity());

      v.insertElementAt(new Konto(1248, -134209), 7);

      System.out.println("Alles ausgeben\n--------------");
      for (int i = 0; i < v.size(); i++)
      {
         Druckbar o = (Druckbar)v.elementAt(i);
         System.out.print(i + ": ");
         o.drucken();
      }
   }
}

