Nabend, ich stehe gerade aufem Schlauch (es ist zu spät zum Programmieren) und muß die Aufgabe morgen nachreichen.
Kann mir mal jemand einen Tipp geben, wie ich die Methode
public Uhrzeit [] gibAnfagszeiten(Kinosaal saal)
implementiere. Ich habe keine AHnung, wo ich die Anfangszeit herbekomme. Habe bisher ein Array Kinosäle und eine ArrayList Vorstellungen.
Danke
takahara
public Uhrzeit[] gibAnfangszeiten(Kinosaal kino) {
assert saele.contains(kino) : "Dieses Kino gibt es nicht im Plan!";
ArrayList zeiten = new ArrayList();
// Alle Vorstellungen durchlaufen, und die Anfangszeiten des Kinos
// im ArrayList zeiten sammeln
for (int i = 0; i < vorstellungen.size(); i++) {
Vorstellung v = (Vorstellung)vorstellungen.get(i);
if (kino.equals(v.gibKinosaal())) {
zeiten.add(v.gibAnfangszeit());
}
}
Dann sind die Anfangszeiten aber noch nicht sortiert.
public Uhrzeit[] gibAnfangszeiten(Kinosaal kino) {
assert saele.contains(kino) : "Dieses Kino gibt es nicht im Plan!";
ArrayList zeiten = new ArrayList();
// Alle Vorstellungen durchlaufen, und die Anfangszeiten des Kinos
// im ArrayList zeiten sammeln
for (int i = 0; i < vorstellungen.size(); i++) {
Vorstellung v = (Vorstellung)vorstellungen.get(i);
if (kino.equals(v.gibKinosaal())) {
zeiten.add(v.gibAnfangszeit());
}
}
Dann sind die Anfangszeiten aber noch nicht sortiert.
Und was 'return't deine Methode ? [img]
http://www.fb18.de/gfx/12.gif[/img]
Ich habe das in der Übung auch diesen Ansatz genommen, doch
es funktionierte nicht.
Ups, da hab ich noch was vergessen:
public Uhrzeit[] gibAnfangszeiten(Kinosaal kino) {
assert saele.contains(kino) : "Dieses Kino gibt es nicht im Plan!";
ArrayList zeiten = new ArrayList();
// Alle Vorstellungen durchlaufen, und die Anfangszeiten des Kinos
// im ArrayList zeiten sammeln
for (int i = 0; i < vorstellungen.size(); i++) {
Vorstellung v = (Vorstellung)vorstellungen.get(i);
if (kino.equals(v.gibKinosaal())) {
zeiten.add(v.gibAnfangszeit());
}
}
// Die Anfangszeiten aus dem Hash zeiten in einen Array wandeln
Uhrzeit[] starttimes = new Uhrzeit[zeiten.size()];
for(int i = 0;i < zeiten.size();i++){
starttimes[ i ] = (Uhrzeit)zeiten.get(i);
}
return starttimes;
}
}
Das umwandeln ist nicht elegant, da gibt es auch eigentlich eine Methode für, aber die hab ich nicht hinbekommen.
// Die Anfangszeiten aus dem Hash zeiten in einen Array wandeln
Uhrzeit[] starttimes = new Uhrzeit[zeiten.size()];
zeiten.toArray(starttimes);
Arrays.sort(starttimes);
Was Vorstellung und sitzplan angeht, den kann doch die jeweilige Vorstellung selber verwalten.