/**
   * Sucht in einem Klassenvektor nach einem Klassennamen. Liefert die UID der Klasse zurück, die
   * gefunden wurde.
   *
   * @param klassen Vektor, in dem die Klasse zu suchen ist
   * @param name Name der Klasse, die zu finden ist
   * @return UID der Klasse, wenn gefunden; wenn nicht gefunden -1
   */
  public static int findKlasse(Vector<Klasse> klassen, String name) {
    for (int i = 0; i < klassen.size(); i++) {
      Klasse k = klassen.get(i);
      if (name.equals(k.getName())) {
        return k.getUid();
      }
    }

    return -1;
  }
  /**
   * Sortiert einen Vektor von Klassen alphabetisch nach Namen.
   *
   * @param v Der Vektor, der zu sortieren ist
   * @param doIndex Wenn true, werden die UIDs nach dem Sortiervorgang neu gesetzt
   */
  public static void sort(Vector<Klasse> v, boolean doIndex) {
    boolean isSorted = false;

    while (!isSorted) {
      isSorted = true;
      for (int i = 0; i < v.size() - 1; i++) {
        Klasse a = v.get(i);
        Klasse b = v.get(i + 1);
        if (a.compareTo(b) > 0) {
          v.setElementAt(b, i);
          v.setElementAt(a, i + 1);
          isSorted = false;
        }
      }
    }

    if (doIndex) {
      int uid = 1;

      for (int i = 0; i < v.size(); i++) {
        v.get(i).setUid(uid++);
      }
    }
  }
 /**
  * Vergleicht diese Klasse mit einer anderen Klasse. Das Resultat ist ein Wert ähnlich dem
  * Rückgabewert der Funktion String.compareTo(). Diese Funktion vergleicht nur den Abteilungsteil
  * eines Klassen- Namens miteinander, nicht die Nummer oder den Buchstaben der Klasse.
  *
  * @param k Die Klasse, mit der verglichen werden soll
  * @return int-Wert wie bei String.compareTo() (es wird nur Abteilung verglichen)
  */
 public int compareToByAbteilung(Klasse k) {
   return getAbteilung().compareTo(k.getAbteilung());
 }