/**
   * Prüft, ob eine Klasse bereits in einem Vektor von Klassen vorhanden ist oder nicht.
   *
   * @return true, wenn die Klasse vorhanden ist, ansonsten false
   */
  public static boolean klasseExists(Vector<Klasse> klassen, Klasse k) {
    for (int i = 0; i < klassen.size(); i++) {
      if (klassen.get(i).equals(k)) {
        return true;
      }
    }

    return false;
  }
  /**
   * 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++);
      }
    }
  }