Also mal 2 kleine Brocken aus deinem ersten code:
[code=Java]
MovieLister mlist = new MovieLister();
Movie[] film = mlist.moviesDirectedBy(regisseur);
[/code]
wenn ich mich richtig zurückerinnere ist das hier schon irgendwie eine komische Sache. Du erstellst ein neues Objekt vom Typ MovieLister . Etwas später erstellst du ein Array vom Typ Movie und statt dieses Array zu instanziieren und mit dem Inhalt deiner Abfrage zu befüllen weist du der film-Variablen lediglich eine Referenz zu.
mlist.moviesDirectedBy(regisseur) gibt ja bereits ein Array zurück. Daher kannst du bereits dieses Array (also den Rückgabewert der Methode) nach seiner Grösse abfragen :
[code=Java]
if (mlist.moviesDirectedBy(regisseur).length > 0)
{
.....
}
[/code]
Noch ne kleine Anmerkung : Zeile 20 -->[c] int i = 0;[/c] paar Zeilen weiter benutzt du das i und weist erneut 0 zu --> [c] for (i = 0 ;.... )[/c]. doppelt gemoppelt
Besser und sicherer ist es wenn du i nur im Schleifenkopf deklarierst/definierst da die Variable dann auch nur da sichtbar ist und die Gefahr eines Überschreibens etc nicht besteht.
Und noch eine Anmerkung : Bei Stringvergleichen (equals) ist es besser (ausser es kommt wirklich 100% auf die Schreibweise als Ergebnis an) equalsIgnoreCase(...) zu benutzen, sonst kommt öfter mal ein false zurück weil die Schreibweise nicht exakt war mit dem verglichenem String.