# Hilfe bei Aufgabe



## InformatikerImAll (26. Apr 2017)

Hey liebe freunde ich habe folgende aufgabenstellung.

In einer Textdatei sind Vorlesungsdaten gespeichert. Jede Zeile besteht aus vier Teilstrings, die mit Doppelpunkten getrennt sind. Der Doppelpunkt kommt sonst nicht vor. Die drei Strings in einer Zeile enthalten der Reihe nach:

    Studiengruppe
    Titel der Vorlesung
    Dozent
    Teilnehmerzahl

Ein Ausschnitt aus der Datei könnte so aussehen:

    I2:Java 2:Rump:100
    I2:Algorithmen und Datenstrukturen:Totzauer:80
    MT2:Mathematik 2:von Coelln:60
    MT2:Audio-/Videotechnik:Lemke:50
    E2:Mathematik 2:Rabe:70


Die folgende Methode load liest eine solche Datei und liefert sie als Liste von Stringlisten ("Datenbasis") zurück.

public static List<List<String>> load(String filename) throws IOException {
     List<List<String>> result = new ArrayList<List<String>>();
     BufferedReader br = new BufferedReader(new FileReader(filename));
     for (String line=br.readLine(); line!=null; line=br.readLine())
         result.add(Arrays.asList(line.split(":")));
     br.close();
     return result;
}

Kapseln Sie eine derartige Datenbasis in einer Klasse Vorlesungsverzeichnis im Paket vorlesung mit den folgenden Methoden:

    Konstruktor
    Lädt die Datenbasis von einer Datei, deren Name als String übergeben wird. Für alle möglichen Formatfehler in der Datei soll eine TextFileFormatException mit einer aussagekräftigen Fehlermeldung geworfen werden.
    public List<String> titles()
    Liefert eine alphabetisch sortierte Liste mit den Titeln aller Vorlesungen.
    public Set<String> workaholics()
    Liefert die Menge derjenigen Dozenten, die zwei oder mehr Vorlesungen halten.
    public Map<String, List<String>> groupToTitles()
    Liefert eine Map, die Studiengruppen auf Listen von Vorlesungstiteln abbildet. Unter dem Schlüssel MT2 wäre für die oben angegebene Datenbasis zum Beispiel als Wert die Liste [Mathematik 2, Audio-/Videotechnik] zu finden.
    public Map<String, List<String>> multipleTitles()
    Liefert eine Map, die Vorlesungen auf Listen von Dozenten, die diese Vorlesungen halten, abbildet. Als Schlüssel werden in der Map nur Vorlesungen verwendet, die von unterschiedlichen Dozenten gehalten werden. Entsprechend der obigen Datenbasis würde in diesem Fall nur ein Eintrag in der Map stehen mit dem Schlüssel Mathematik 2 und dem Wert [von Coelln, Rabe] als Liste.
    public List<String> descendingTitles()
    Liefert eine nach Teilnehmerzahl absteigend(!) sortierte Liste mit den Titeln aller Vorlesungen.

Die Klasse Vorlesungsverzeichnis muss die Daten zu den Vorlesungen intern als Objektvariable in einer Set<Vorlesung> speichern und verarbeiten!








meine Frage dazu: was ist mit ...    "" Die Klasse Vorlesungsverzeichnis muss die Daten zu den Vorlesungen>>!!! intern als Objektvariable in einer Set<Vorlesung>   !!!  <<<speichern und verarbeiten!   .... gemeint? also ich verstehe noch nicht ganz wie das aussehen soll mit dem Set<Vorlesung>.    


Ausserdem frage wäre es nett wen mir jemand nen denkanstoss oder irgendeine hilfe zu den konstruktoren geben könnte...


danke im vorraus


----------



## krgewb (28. Apr 2017)

Ein Set enthält keine Duplikate. 
Anstatt Zahlen oder Strings sollen Objekte der Klasse Vorlesung gespeichert werden. Dieses syntaktische Mittel nennt man Generics.


----------

