/***************************************************************/
/* Prof. Dr. Carsten Vogt                                      */
/* FH Koeln, Fak. 07 / Nachrichtentechnik                      */
/* http://www.nt.fh-koeln.de/vogt                              */
/*                                                             */
/* Das Programm demonstriert Basismethoden auf Listen.         */
/* Das Programm ist erst ab Java 5 lauffaehig!                 */
/***************************************************************/

import java.io.*;
import java.util.*;

public class Lists {

 public static void main(String[] args)  {

  /* Deklaration und Erzeugung einer Liste */ 

  ArrayList<Integer> liste = new ArrayList<Integer>();

  /* Feststellung der Groesse und Test, ob die Liste leer ist */

  System.out.println();
  System.out.println("Liste 'liste' wurde erzeugt:");
  System.out.println();
  System.out.println(" liste.size(): "+liste.size());
  System.out.println(" liste.isEmpty(): "+liste.isEmpty());
  System.out.println();
  
  /* Hinzufuegen von sechs Elementen */

  liste.add(47);
  liste.add(15);
  liste.add(32);
  liste.add(15);
  liste.add(25);
  liste.add(47);

  /* Feststellung der Groesse,
     Test auf leere Liste,
     Ausgabe des Inhalts */

  System.out.println("Eintraege 47, 15, 32, 15, 25, 47 wurden hinzugefuegt:");
  System.out.println();
  System.out.println(" liste.size(): "+liste.size());
  System.out.println(" liste.isEmpty(): "+liste.isEmpty());
  System.out.print(" Inhalt von liste: ");
  for (Iterator it=liste.iterator();it.hasNext();)
   System.out.print(it.next()+" ");
  System.out.println();
  System.out.println();

  /* Test, ob bestimmte Elemente vorhanden sind,
      und Ausgabe ihrer Position */

  System.out.println(" liste.contains(32): "+liste.contains(32));
  System.out.println(" liste.indexOf(n32): "+liste.indexOf(32));
  System.out.println();
  System.out.println(" liste.contains(33): "+liste.contains(33));
  System.out.println(" liste.indexOf(33): "+liste.indexOf(33));
  System.out.println();
  System.out.println(" liste.contains(47): "+liste.contains(47));
  System.out.println(" liste.indexOf(47): "+liste.indexOf(47));
  System.out.println(" liste.lastIndexOf(47): "+liste.lastIndexOf(47));
  System.out.println();

  /* Ausgabe von Elementen an bestimmten Positionen */

  System.out.println(" liste.get(1): "+liste.get(1));
  System.out.println(" liste.get(5): "+liste.get(5));
  System.out.println();

  /* Einfuegen eines Elements */

  liste.add(4,47);
  System.out.println("liste.add(4,47) wurde ausgefuehrt:");
  System.out.println();
  System.out.print(" Inhalt von Liste: ");
  for (Iterator it=liste.iterator();it.hasNext();)
   System.out.print(it.next()+" ");
  System.out.println();
  System.out.println();

  /* Ueberschreiben eines Elements */

  liste.set(3,47);
  System.out.println("liste.set(3,47) wurde ausgefuehrt:");
  System.out.println();
  System.out.print(" Inhalt von Liste: ");
  for (Iterator it=liste.iterator();it.hasNext();)
   System.out.print(it.next()+" ");
  System.out.println();
  System.out.println();

  /* Entfernen von einzelnen Elementen */

   /* entfernt Element an der Position 1 */
  liste.remove(1);
  System.out.println("liste.remove(1) wurde ausgeführt");
  System.out.println();
  System.out.print(" Inhalt von liste: ");
  for (Iterator it=liste.iterator();it.hasNext();)
   System.out.print(it.next()+" ");
  System.out.println();
  System.out.println();

  /* Entfernen aller Elemente */

  liste.clear();
  System.out.println("liste.clear() wurde ausgefuehrt:");
  System.out.println();
  System.out.println(" liste.size(): "+liste.size());
  System.out.println(" liste.isEmpty(): "+liste.isEmpty());
  System.out.print(" Inhalt von liste: ");
  for (Iterator it=liste.iterator();it.hasNext();)
   System.out.print(it.next()+" ");
  System.out.println();
  System.out.println();
   
 }

}

