Re: Fehler im Template vom Hausübung 10
Verfasst: 17. Jan 2008 15:10
ich hab das jetzt auch so verstanden, dass man das maximum aus den 3 vectoren suchen soll, weil man keine anderen listen hat
Fachschaft Informatik
FB Informatik
TU Darmstadt
https://www.fachschaft.informatik.tu-darmstadt.de/forum/
https://www.fachschaft.informatik.tu-darmstadt.de/forum/viewtopic.php?f=393&t=10968
So war es auch gedacht; sorry, wenn das teilweise etwas unverständlich gewesen ist.Jo(h)nny hat geschrieben:ich hab das jetzt auch so verstanden, dass man das maximum aus den 3 vectoren suchen soll, weil man keine anderen listen hat
Gemäß Doku (java.util.Collection, static <T> T max(Collection, Comparator)):Jo(h)nny hat geschrieben:jetzt ma ne kleine frage, was ist eigentlich wenn die listen leer sind???
also das ist ja so, dass man zuerst, bevor man alle listen mit compare durchgehen soll, eine variable anlegen muss und ihr ein objekt aus der listen zuweisen muss(man braucht ja schlisslich 2 objekte zum vergleich).
Die Exception wird im Zweifelsfall direkt beim Aufruf von "myCollection.max()" ausgelöst. Beide sind aber RuntimeExceptions, die ihr also nicht per "throws..." deklarieren oder per catch(...) fangen müsst.Jo(h)nny hat geschrieben:also müsste unsere methode auch die 2 arten von exceptions werfen?? wobei die erste ist ja in unserem fall überflüssig, weil wir ja nur StockItems in inseren listen haben:)
Wieso -- den Comparator müsst Ihr dann ja schließlich selbst implementieren...??Jo(h)nny hat geschrieben:und was hat also guido mit "myCollection.max()" gemeint??
so hat sich erledigt:)
@guido, ich finds unsportlich auf die listen die vordefenierte max anzuwenden;)
Die "max()" Methode hat durchaus Parameter, die habe ich nur nicht gerade auswendig im Kopf. Wird wohl (Collection<T>, Comparator<U>) (oder so ähnlich) lauten...evel hat geschrieben:ich verstehe nicht, warum man die myCollection.max-funktion ohne parameter verwenden soll? warum nicht die wo ich eine collection und einen comparator übergebe?
genauer:guido hat geschrieben:Die "max()" Methode hat durchaus Parameter, die habe ich nur nicht gerade auswendig im Kopf. Wird wohl (Collection<T>, Comparator<U>) (oder so ähnlich) lauten...evel hat geschrieben:ich verstehe nicht, warum man die myCollection.max-funktion ohne parameter verwenden soll? warum nicht die wo ich eine collection und einen comparator übergebe?
Guido
Code: Alles auswählen
StockItem max(T comparator)
Also deine drei gesuchten Argumente sind bereits in der Klasse StoreMangager enthalten, in der du diese Methode implementierst. Deshalb brauchst du keine Argumente mehr, weil du einfach auf die Vektoren des StoreManagers die max-Methode ausführst. Der Comperator ist nur dazu da um "Code einzuschleusen" á la lambda bei Scheme. Denn im Endeffekt übergibst du per Comperatorobjekt der Methode eine Funktion als Parameter, mit dessen Hilfe dann entschieden wird, was nun maximal ist. Dadurch das festgelegt ist, dass nur Objekte die das Comparatorinterface implementieren übergeben werden dürfen, ist auch sichergestellt, dass man mit diesem Objekt die Funktionen compare und equal aufrufen kann, z.B.:caesar hat geschrieben:Nochmal als Bestätigung, den Comparator müssen wir selbst implementieren und dieser muss dann alle drei Vektoren enthalten, von denen dann in max() das Maximum rausgesucht wird? Mir fehlen nämlich sonst die drei Argumente, die ich übergeben muss...