Array befüllen

smart85

Mitglied
Hallo liebe Leute, ich bitte euch um Hilfe, weil ich einfach nicht mehr weiter weiß wie ich folgendes Problem lösen kann. In case 2 möchte ich einen bestimmten Regisseur aus einer .txt Datei eintippen und dazu nur von diesem Regisseur seine Filme ausgeben. Irgendetwas stimmt an der Zeile nicht. Die main ist weiter unten sowie die Methode moviesDirectedBy. In dieser Methode müssen der eingegebene Regisseur mit dem vorhandenen Regisseur verglichen werden mittels equal().
Wenn ich aber den Regisseur eintippe wird mir auf der console nichts ausgegeben...ich verstehe nicht was ich da falsch mache. Kann mir jemand von euch einen Rat geben? Danke im Voraus!!!!


Movie[] film = mlist.moviesDirectedBy("bbbbbbbb"+regisseur);


Die .txt Datei sieht so aus:

----------------------------------------
Star Wars:George Lucas
Pulp Fiction:Quentin Tarantino
From Dusk Till Dawn:Quentin Tarantino
Der Soldat James Ryan:Steven Spielberg
----------------------------------------

Java:
[B]public static void main(String[] args) throws IOException {
[/B]		
	String regisseur;
	MovieLister mlist = new MovieLister();
        IMovieFinder c = new ColonDelimitedMovieFinder();

switch....

case 2: 
	    		    System.out.print("Bitte geben Sie den Regisseur ein: ");
	    		    InputStreamReader isr = new InputStreamReader(System.in);
	    		    BufferedReader buffer= new BufferedReader(isr);
	    		    regisseur = buffer.readLine();//Texteingabe von Tastatur.
	    		    buffer.close();
	    		    System.out.println("Regisseur: " +regisseur);
	    		   [B][COLOR="Navy"] Movie[] film = mlist.moviesDirectedBy("bbbbbbbb"+regisseur);[/COLOR][/B]
	    		    
	    		    System.out.println("FILM: " +film);


   for (int i=0; i<film.length; i++){
   System.out.println("Hallo");    	        
   System.out.println(i+" "+film[i].getTitle());    	        	
   }

break;

}	    
}
}


Java:
import java.util.ArrayList;
public class MovieLister {
	
	private IMovieFinder movieFinder = new ColonDelimitedMovieFinder();
	public MovieLister(){
	System.out.println("aaaaaaaaaaaaaa");
	}

public Movie[] moviesDirectedBy(String director){ // <<<<<<<< !!!!! <<<<<<<<<<<<<

	Movie[] filmliste;
   	ArrayList<Movie> allefilme = movieFinder.findall();
   	ArrayList<Movie> filme = new ArrayList<Movie>();
   	
   	for(int j = 0; j < allefilme.size(); j++){
   		if(allefilme.get(j).getDirector().equals(director)){
   			filme.add(allefilme.get(j));
   		}  				
   	}
   
   	filmliste = new Movie[filme.size()];
   	filme.toArray(filmliste);
   	return filmliste;
	   
	   
   }
}
 
C

Camino

Gast
Ich kann dir ein paar Hinweise zu deiner Klasse MovieLister geben.

Du holst dir alle Filme in eine Liste
Code:
ArrayList<Movie> allefilme
, gehst durch diese durch und schreibst alle Filme mit dem entsprechenden
Code:
String director
in eine neue Liste
Code:
ArrayList<Movie> filme
. Diese wandelst du um in einen Array, den die Methode
Code:
moviesDirectedBy
zurückgibt.

Ich würde bei der Methode gleich die
Code:
ArrayList<Movie> filme
zurückgeben und nicht in einen Array umwandeln.

Die for-Schleife, mit der du durch die Filme durchgehst, lässt sich in Java auch besser/einfacher schreiben. Anstatt
Java:
for(int j = 0; j < allefilme.size(); j++){
        if(allefilme.get(j).getDirector().equals(director)){
            filme.add(allefilme.get(j));
        }               
    }
könntest du schreiben
Java:
for(Movie m : allefilme){
        if(m.getDirector().equals(director))
            filme.add(m);
    }
Und diese ArrayList<Movie> filme kannst du dann als Rückgabewert der Methode in der anderen Klasse weiterverarbeiten.

Die ArrayList hat gegenüber dem Array den Vorteil, dass die Grösse der ArrayList vorher nicht bekannt sein oder festgelegt werden muss, sondern dynamisch wachsen kann.
 
C

Camino

Gast
Ansonsten fällt mir auf, du hast in der oberen Klasse stehen:
Code:
Movie[] film = mlist.moviesDirectedBy("bbbbbbbb"+regisseur);
Gibt es denn in deiner Textdatei einen Regisseur, der mit bbbbbbbb anfängt?

Und was gibt dir diese Codezeile aus:
Code:
System.out.println("FILM: " +film);
?
 

xehpuk

Top Contributor
Wird auf der Konsole rein gar nichts ausgegeben, das Programm endet einfach? Das klingt ja nach einem
Code:
try-catch
mit leerem
Code:
catch
-Block. Du müsstest da dann schon mehr (kompilierbaren) Code zeigen, aber möglichst minimal (auslösenden Code-Bereich identifizieren).
[JAVA=14]buffer.close();[/code]
Halte ich für keine gute Idee. Danach ist
Code:
System.in
geschlossen, es lässt sich also nichts mehr von der Konsole einlesen.
 

smart85

Mitglied
Vielen Dank für deine Antwort!!!

wie meinst du das mit "Und diese ArrayList<Movie> filme kannst du dann als Rückgabewert der Methode in der anderen Klasse weiterverarbeiten."
 

smart85

Mitglied
das war nur zum Ausprobieren...>>>

Ansonsten fällt mir auf, du hast in der oberen Klasse stehen:
Movie[] film = mlist.moviesDirectedBy("bbbbbbbb"+regisseur);
Gibt es denn in deiner Textdatei einen Regisseur, der mit bbbbbbbb anfängt?

Und was gibt dir diese Codezeile aus: System.out.println("FILM: " +film); ?
 
C

Camino

Gast
Na ja, anstatt einem Array Movie[] gibst du halt die ArrayList filme zurück und arbeitest damit in der anderen Klasse weiter. Also anstatt
Java:
public Movie[] moviesDirectedBy(String director)
heisst die Methode in MovieLister dann
Java:
public ArrayList<Movie> moviesDirectedBy(String director)

Und in deiner oberen Klasse anstatt
Java:
Movie[] film = mlist.moviesDirectedBy("bbbbbbbb"+regisseur)
heisst das eben
Java:
ArrayList<Movie> filme = mlist.moviesDirectedBy(regisseur)
 

smart85

Mitglied
wenn ich es umändere, dann meckert das Programm bei fettmarkierten Stellen...und leider muss ich
das mit >>>> public Movie[] moviesDirectedBy(String director){ umsetzen...:oops:



ArrayList<Movie> film = mlist.moviesDirectedBy(regisseur);

for (int i=0; i<film.length; i++){
System.out.println("Hallo");
System.out.println(i+" "+film.getTitle());
}
 
C

Camino

Gast
wenn ich es umändere, dann meckert das Programm bei fettmarkierten Stellen...und leider muss ich
das mit >>>> public Movie[] moviesDirectedBy(String director){ umsetzen
Ist das die Vorgabe, dass du mit Array arbeiten musst, und keine ArrayList verwenden darfst?

Java:
ArrayList<Movie> film = mlist.moviesDirectedBy(regisseur);
	    	        
for (int i=0; i<film.length; i++){
System.out.println("Hallo");    	        
System.out.println(i+" "+film[i].getTitle());
Das kommt noch davon, dass du vorher die Rückgabe als Array hattest. Wie man durch eine ArrayList durchläuft hatte ich dir ja schon gezeigt...
 
Zuletzt bearbeitet von einem Moderator:

smart85

Mitglied
mir wird die ganze Liste mit den Filmen und Regissuereen ausgegebe...ich kriege es einfach nicht hin nur die Filme auszugeben, die ich zu einem bestimmten Regisseuren erfahren möchte...


:oops:
 
C

Camino

Gast
Na gut, sorry, dann nehme ich alles wieder zurück. War halt auf ArrayList ausgelegt. Dann war es wohl vorher doch einigermassen richtig, wie du es geschrieben hattest.
 
C

Camino

Gast
Ja, mir reicht es für heute auch. Manchmal erkennt man das Problem am nächsten Tag ganz plötzlich. Ebenfalls gute Nacht...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
A mit .equals Array befüllen schlägt teilweise fehl Allgemeine Java-Themen 3
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 24
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
noah1407 Array Allgemeine Java-Themen 3
D Methoden Teil-Array mit Maximalwert bestimmen Allgemeine Java-Themen 23
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
L Array und Index Allgemeine Java-Themen 26
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
J Variablen Array ertellen bei model.put Allgemeine Java-Themen 13
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
R convert 2d array list to 2d array Allgemeine Java-Themen 1
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
MiMa Array umbau oder Alternative? Allgemeine Java-Themen 5
L Datentypen 3D Array Allgemeine Java-Themen 3
Mario1409 Methoden JSON Array von URL Allgemeine Java-Themen 8
E Swing Array mit Bildern in GUI darstellen Allgemeine Java-Themen 2
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
M Zweidimensionales Array mit Binärzahlen füllen Allgemeine Java-Themen 8
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
J Wie kann ich ein Java Array als Säulendiagramm ausgeben? Allgemeine Java-Themen 2
Z 2D Array Pixels reparieren Allgemeine Java-Themen 2
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
B Polibios Array erweitern Allgemeine Java-Themen 1
R Index in einem Array löschen Allgemeine Java-Themen 10
R Index in einem Array löschen Allgemeine Java-Themen 2
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
J Array-List Bubble-Sort Allgemeine Java-Themen 12
4 Variablen Int-Array Int Zuweisen Allgemeine Java-Themen 7
J Array Allgemeine Java-Themen 8
Z Array mit unterschiedlichen Werten Allgemeine Java-Themen 1
L sortiertes Array im main aufrufen klappt nicht. Allgemeine Java-Themen 3
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
A Vector Strings in Array splitten Allgemeine Java-Themen 6
I Muster in Array suchen Allgemeine Java-Themen 10
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
B Zahlen manuell eingeben und in Array Speichern Allgemeine Java-Themen 2
R Wärmeleitung, 3d-Array Allgemeine Java-Themen 2
T Java Array in Methoden Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben