Übung04

Moderator: AI 2

m_flaig
Moderator
Moderator
Beiträge: 272
Registriert: 27. Sep 2009 14:02

Übung04

Beitrag von m_flaig »

Hier können Sie Fragen zu Übung04 stellen oder zu Themen, die in Übung04 behandelt wurden.

m_flaig
Moderator
Moderator
Beiträge: 272
Registriert: 27. Sep 2009 14:02

Re: Übung04

Beitrag von m_flaig »

Eine Musterlösung ist ab sofort in moodle verfügbar.

knobelix
Erstie
Erstie
Beiträge: 12
Registriert: 7. Feb 2014 16:49

Re: Übung04

Beitrag von knobelix »

Irgendwie steh ich grad auf dem Schlauch, ich bekomme für folgende zwei Zeilen im Konstruktur für die zweite Zeile eine Fehlermeldung.
The constructor TreeSet<T>(GolfComparator) is undefinied.

Code: Alles auswählen

GolfComparator compare = new GolfComparator();
records = new TreeSet<T>(compare);
In der Musterlösung steht das allerdings fast so wie bei mir, außer das "generischen Paramater" eben schon mit GolfRecord und nicht allgemein noch mit T angegeben sind, daher sehe ich meinen Fehler grade irgendwie nicht so wirklich.

m_flaig
Moderator
Moderator
Beiträge: 272
Registriert: 27. Sep 2009 14:02

Re: Übung04

Beitrag von m_flaig »

Hallo,

Beispiel für ein allgemeines TreeSet, welches sortiert werden soll: new TreeSet<String>( new Comparator<String>())
(andere TreeSet Konstruktoren siehe API: http://docs.oracle.com/javase/6/docs/ap ... eeSet.html)
Hier wird für den generischen Typ die Klasse String eingesetzt, damit ist sichergestellt, dass nur String-Objekte im Set gespeichert sind.
Danach folgt ein spezieller Comparator für String-Objekte.

Wichtig sind also zwei Sachen:
1. Die Elemente müssen sich vergleichen lassen. Kommen zum Beispiel GolfRecord-Objekte in das TreeSet, und gibt es keinen speziellen Comparator für GolfRecorde, so löst TreeSet eine Exception aus, da TreeSet nicht weiß, wie die GolfRecorde geordnet werden sollen. Gleiches gilt für das obrige Beispiel mit String-Objekten und dem String-Comparator.
2. Die Elemente müssen vom gleichen Typ sein. Wie sollte sich ein Kirchen-Objekt mit einem Staubsauger-Objekt vergleichen lassen? 8)

In Ihrem Beispiel kann das Set mit T nichts anfangen, da Sie keine Klasse T geschrieben haben, somit keine T-Objekte gibt und es keinen speziellen Comparator für T gibt.

Ich hoffe, es ist nun etwas klarer, ansonsten einfach nochmal nachfragen =)

VG,
M.Flaig

mdk
Mausschubser
Mausschubser
Beiträge: 43
Registriert: 18. Apr 2014 10:33

Re: Übung04

Beitrag von mdk »

Hallo,

es geht um die ML zu Aufgabe 3.1 g)

Dort steht: "Der Iterator repräsentiert zu Beginn einen Zeiger auf das erste Objekt."

Das ist aber falsch oder? Ich dachte, dass der Iterator nach dem Erstellen erst mal auf nichts zeigt und erst mit dem Aufruf von next() auf das erste Objekt der Liste zeigt oder?

VG
Martin

m_flaig
Moderator
Moderator
Beiträge: 272
Registriert: 27. Sep 2009 14:02

Re: Übung04

Beitrag von m_flaig »

Hallo,
in Thread "Übung05" gab es dazu schon eine Antwort, hier der Auszug, hoffe es hilft Ihnen weiter:

Die aktuelle Position befindet sich jeweils zwischen zwei Elementen, also am Anfang auf 0 VOR dem ersten Element der Liste, nach dem ersten Aufruf von next() auf Position 1, das heißt zwischen Element 0 und Element 1 der Liste, so dass beim zweiten Aufruf von next() das Element Nummer 1 (das zweite Element der Liste) zurückgegeben wird - genau so, wie man es erwarten würde. Man kann sich den Iterator also wie einen Cursor vorstellen =)


VG,
M.Flaig

Antworten

Zurück zu „AI 2“