Probleme mit Arrays

Volnick

Mitglied
Java:
public class Klassenzimmer {
        Schueler[] mates;
        int number = 0;

        public Klassenzimmer() {
            mates = new Schueler[5];
        }

        public void add(Schueler x) {

            mates[number] = x;
            number += 1;

            if (number <= 4) {
                System.out.println(x.forename + " " + x.name + " kommt rein");
            } else if (number > 4) {
                System.out.println("Tut uns leid, " + x.forename + " " + x.name + ". Das Klassenzimmer ist voll");
            }

        }

        public Schueler[] allGetOut() {
            // if(taxi.length == 0){
            // Ich soll ausgeben, wie viele ausgestiegen sind, d.h. wie viele im Taxi saßen
            Schueler[] taxi0 = new Schueler[0];
            Schueler[] taxi1 = new Schueler[1];
            Schueler[] taxi2 = new Schueler[2];
            Schueler[] taxi3 = new Schueler[3];
            Schueler[] taxi4 = new Schueler[4];

            if(number == 1)
                return new Schueler[1];
            else if (number == 2)
                return new Schueler[2];
            else if (number == 3)
                return new Schueler[3];
            else if (number == 4)
                return new Schueler[4];
            else
                return taxi0;

        }

    @Override
    public String toString() {
        if (number == 1)
            return "Das ist das Klassenzimmer von Dr.Jung. Er unterrichtet Marek Kurz ";
        else if (number == 2)
            return "Das ist das Klassenzimmer von Dr.Jung. Er unterrichtet Marek Kurz und Paul Alles";
        else if (number == 3)
            return "Das ist das Klassenzimmer von Dr.Jung. Er unterrichtet Marek Kurz, Paul Alles und Lena Weil.";
        else if (number == 4)
            return "Das ist das Klassenzimmer von Dr.Jung. Er unterrichtet Marek Kurz, Paul Alles, Lena Weil und Fabien Lehm. ";
        else
            return "Das ist das Klassenzimmer von Dr.Jung. Er unterrichtet niemanden.";

    }
}
_______________________________________________________________________________________________________________________
Java:
public class Schueler {

    String forename;
    String name;

    public Schueler(String forename, String name) {
        this.forename = forename;
        this.name = name;
    }

    public String getName() {
        return name;
    }
    public String getForename(){

        return forename;
    }

    @Override
    public String toString() {
        return forename+ " " + name;
    }

}
_______________________________________________________________________________________________________________________
Java:
public class Main {
    public static void main(String[] args) {

        Schueler m1 = new Schueler("Marek", "Kurz");
        Schueler m2 = new Schueler("Paul","Alles");
        Schueler m3 = new Schueler("Lena","Weil");
        Schueler m4 = new Schueler("Susi","Born");
        Schueler m5 = new Schueler("Fabien","Lehm");

        Klassenzimmer classe = new Klassenzimmer();

        classe.add(m1);
        classe.add(m2);
        classe.add(m3);
        classe.add(m4);
        classe.add(m5);

        System.out.println(classe.allGetOut());

    }
}
_______________________________________________________________________________________________________________________
Ausgabe:
Code:
Marek Kurz kommt rein
Paul Alles kommt rein
Lena Weil kommt rein
Susi Born kommt rein
Tut uns leid, Fabien Lehm. Das Klassenzimmer ist voll
[LclassroomForExample.Schueler;@59a6e353

Problem:
Nachdem die Methode allGetOut() ausgeführt wird, soll in einem Array angezeigt werden, wer alles das Klassenzimmer verlassen hat.
Das heißt, falls nur Marek Kurz im Klassenzimmer war, dann soll [Marek Kurz] ausgegeben werden.

Ich erhalte jedoch immer einen Fehler:

allGetOut() returned an array that contains null instead of a proper Schueler object for one of the schueler!
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Gast
Schau Dir doch die Funktion einmal im Detail an.

Du erzeugst ein Array von Schueler einer bestimmten Größe und gibt dann das Array zurück. Die Referenzen sind also mit null gefüllt.

Das Array, das Du erzeugst, musst Du auch mit den Schülern füllen, ehe Du es zurück gibst.
 
K

kneitzel

Gast
Wie hast Du denn das Array "mates" gefüllt, wenn da ein Schüler in den Klassenraum gekommen ist?
Prinzipiell geht es hier genau so, nur eben musst Du hier nicht einen Schüler, der als Parameter übergeben wird, einfügen, sondern die Schüler, die bereits in mates enthalten sind.
 

Volnick

Mitglied
Wie hast Du denn das Array "mates" gefüllt, wenn da ein Schüler in den Klassenraum gekommen ist?
Prinzipiell geht es hier genau so, nur eben musst Du hier nicht einen Schüler, der als Parameter übergeben wird, einfügen, sondern die Schüler, die bereits in mates enthalten sind.
Ich komme nicht auf die Lösung. Könnten Sie mir bitte weiterhelfen?
 
K

kneitzel

Gast
Du hast ein Array mates in dem Schueler gespeichert sind. Desweiteren hast Du eine Variable number, in der gespeichert ist, wie viele Schüler gespeichert wurden.

Somit sieht der Pseudo-Code wie folgt aus:
1. Erzeuge ein neues Array von Schueler mit number elementen. (Also ein Java Konstrukt mit "new" Befehl)
2. Für zähler = 0 bis number-1: Setze neuesArray[zaehler] = mate[zähler] (Also for Schleife mit einer Zuweisung im Schleifenkörper)
3. gib neuesArray zurück. (Also ein return Befehl)
Ich habe in Klammern einmal Hinweise auf Java Befehle gegeben.

Kommst Du mit diesen Hinweisen jetzt weiter? Sorry, wenn es für Dich etwas umständlich scheint, aber mir ist es wichtiger, die Hinweise zu der Lösung zu geben, so dass Du da eher ein Verständnis entwickelst, als Dir nur fertigen Code "um die Ohren zu hauen".
 

Volnick

Mitglied
Du hast ein Array mates in dem Schueler gespeichert sind. Desweiteren hast Du eine Variable number, in der gespeichert ist, wie viele Schüler gespeichert wurden.

Somit sieht der Pseudo-Code wie folgt aus:
1. Erzeuge ein neues Array von Schueler mit number elementen. (Also ein Java Konstrukt mit "new" Befehl)
2. Für zähler = 0 bis number-1: Setze neuesArray[zaehler] = mate[zähler] (Also for Schleife mit einer Zuweisung im Schleifenkörper)
3. gib neuesArray zurück. (Also ein return Befehl)
Ich habe in Klammern einmal Hinweise auf Java Befehle gegeben.

Kommst Du mit diesen Hinweisen jetzt weiter? Sorry, wenn es für Dich etwas umständlich scheint, aber mir ist es wichtiger, die Hinweise zu der Lösung zu geben, so dass Du da eher ein Verständnis entwickelst, als Dir nur fertigen Code "um die Ohren zu hauen".
Vielen Dank, dass Sie helfen!
Ich habe jetzt folgenden Code geschrieben:

Java:
Human[] neuesArray;

public Schueler[] allGetOut() {

    Schueler[] mates = new Schueler[number];

    for(int zaehler =0; zaehler <= number-1; neuesArray[zaehler] = mates[zaehler] ){
        return neuesArray;
    }
    return mates;

}
Ist die for-Schleife so richtig?
Bekomme nun leider einen NullPointerException ausgeworfen.
 
K

kneitzel

Gast
Also Dein lokales mates array überdeckt das mates Array aus der Klasse. Das ist etwas unschön.

Die Schleife ist aber noch nicht korrekt. Ich verbessere es jetzt einmal mit Kommentaren:
Java:
public Schueler[] allGetOut() {

//    Schueler[] mates = new Schueler[number];
    Schueler[] neuesArray = new Schueler[number]; // neuesArray habe ich es mal genannt. mates ist ja das Arary in der Klasse

//    for(int zaehler =0; zaehler <= number-1; neuesArray[zaehler] = mates[zaehler] ){
    for(int zaehler =0; zaehler <= number-1; zaehler++) { // in der for Schleife wird an der dritten Stelle meistens die Variable erhöht.
        neuesArray[zaehler] = mates[zaehler]; // Hier weisen wir den schüler aus mates dem neuen Array zu.
//        return neuesArray; // Wir wollen die Schleife ja ganz durchlaufen, daher kein return.
    }
//    return mates; // Wäre ok gewesen, wenn ich mates oben nicht umbenannt hätte.
    return neuesArray;
}

Ist das so verständlich? Ich habe jetzt gerade keine Möglichkeit das zu testen. Falls es da noch Probleme geben sollte, dann zeig noch mal den ganzen Code von Dir.
 

Volnick

Mitglied
Also Dein lokales mates array überdeckt das mates Array aus der Klasse. Das ist etwas unschön.

Die Schleife ist aber noch nicht korrekt. Ich verbessere es jetzt einmal mit Kommentaren:
Java:
public Schueler[] allGetOut() {

//    Schueler[] mates = new Schueler[number];
    Schueler[] neuesArray = new Schueler[number]; // neuesArray habe ich es mal genannt. mates ist ja das Arary in der Klasse

//    for(int zaehler =0; zaehler <= number-1; neuesArray[zaehler] = mates[zaehler] ){
    for(int zaehler =0; zaehler <= number-1; zaehler++) { // in der for Schleife wird an der dritten Stelle meistens die Variable erhöht.
        neuesArray[zaehler] = mates[zaehler]; // Hier weisen wir den schüler aus mates dem neuen Array zu.
//        return neuesArray; // Wir wollen die Schleife ja ganz durchlaufen, daher kein return.
    }
//    return mates; // Wäre ok gewesen, wenn ich mates oben nicht umbenannt hätte.
    return neuesArray;
}

Ist das so verständlich? Ich habe jetzt gerade keine Möglichkeit das zu testen. Falls es da noch Probleme geben sollte, dann zeig noch mal den ganzen Code von Dir.
Danke!!!
Es hat alles geklappt.
Schönes Wochenende noch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
I Probleme mit 2 dimensionale Arrays Java Basics - Anfänger-Themen 3
L Probleme mit Arrays Java Basics - Anfänger-Themen 5
L Probleme bei Rückgabe eines Arrays in einer Methode Java Basics - Anfänger-Themen 47
O Verständis Probleme bei Arrays Java Basics - Anfänger-Themen 2
C OOP Probleme beim Addieren von Arrays Java Basics - Anfänger-Themen 4
L Magisches Viereck - Probleme mit Arrays Java Basics - Anfänger-Themen 3
F Probleme mit Arrays! Java Basics - Anfänger-Themen 2
M OOP for Schleife macht mir Probleme mit Arrays Java Basics - Anfänger-Themen 7
I Probleme beim Ansprechen eines Arrays Java Basics - Anfänger-Themen 12
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
I Projekte in IDE untereinander sharen / Probleme beim Build Java Basics - Anfänger-Themen 8
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
V Probleme Guessing Game Java Basics - Anfänger-Themen 8
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
R JMenu/JMenuItem Probleme Java Basics - Anfänger-Themen 2
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
J Probleme mit dem Debugger Java Basics - Anfänger-Themen 4
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
J Probleme mit Kompilierung Java Basics - Anfänger-Themen 11
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
C Probleme mit paintComponent Java Basics - Anfänger-Themen 13
P Probleme mit JUnit-Tests, es kommt was anderes raus als bei manuellen Tests Java Basics - Anfänger-Themen 5
E JavaFX Editor Probleme mit der Zwischenablage Java Basics - Anfänger-Themen 12
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
R Erste Schritte Probleme bei 2D Spielfeld, mit einzufügender "Person" Java Basics - Anfänger-Themen 5
P Probleme bei der Installation von JavaFX Java Basics - Anfänger-Themen 3
S Mehrere Probleme im Code Java Basics - Anfänger-Themen 7
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
Dimax String Probleme Java Basics - Anfänger-Themen 12
Splayfer Java Array Probleme Java Basics - Anfänger-Themen 3
J Probleme bei IllegalArgumentException "werfen". Java Basics - Anfänger-Themen 1
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
X Probleme im Umgang mit PriorityQueue Java Basics - Anfänger-Themen 75
D Probleme mit dem Windowbuilder und JComboBox Java Basics - Anfänger-Themen 2
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
X Probleme mit Übungsaufgaben zu Zahlentypen Java Basics - Anfänger-Themen 4
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
Franzi1001 Probleme mit Eclipse Java Basics - Anfänger-Themen 7
T Probleme bei Installation von JDK Java Basics - Anfänger-Themen 2
C Probleme mit String-Vergleich Java Basics - Anfänger-Themen 4
C Probleme bei Regex Java Basics - Anfänger-Themen 9
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
T Probleme mit Strings Java Basics - Anfänger-Themen 6
G Probleme bei Frame aufgaben Java Basics - Anfänger-Themen 6
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
L Probleme mit Java Java Basics - Anfänger-Themen 3
S Probleme mit abspielen einer .wav Datei Java Basics - Anfänger-Themen 2
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
J Probleme beim Array ausgeben Java Basics - Anfänger-Themen 4
M Probleme bei rekursiver Zuordnung Java Basics - Anfänger-Themen 1
H Best Practice View probleme Java Basics - Anfänger-Themen 2
B Probleme mit Kreisberechnung Java Basics - Anfänger-Themen 15
E Probleme mit Scanner Java Basics - Anfänger-Themen 4
J Eclipse Export Probleme Java Basics - Anfänger-Themen 25
M Probleme beim verwenden von Packages Java Basics - Anfänger-Themen 6
D Probleme mit der Übergabe einer BorderPane Java Basics - Anfänger-Themen 2
J Interface Probleme bei der Implementierung Java Basics - Anfänger-Themen 1
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
V Klassen ObjectInputStream ->ReadObject Probleme Java Basics - Anfänger-Themen 5
P Probleme mit der Do-Schleife Java Basics - Anfänger-Themen 2
F Erste Schritte Compiling Probleme Java Basics - Anfänger-Themen 13
S Neuling und Probleme bei Schulaufgabe Java Basics - Anfänger-Themen 5
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
M Probleme mit Eclipse Java Basics - Anfänger-Themen 20
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Compiler-Fehler javac hat Probleme mit Paketen unter OSX Java Basics - Anfänger-Themen 2
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
B Variablen Probleme mit Eclipse Java Basics - Anfänger-Themen 6
H Mouse- und KeyListener Probleme? Java Basics - Anfänger-Themen 5
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
I Probleme bei Verzeichnissanalyse Java Basics - Anfänger-Themen 12
F Probleme mit privaten Klassen (abstrakten Klassen) Java Basics - Anfänger-Themen 1
H Probleme mit Klassen...oder: Eine Uhr Java Basics - Anfänger-Themen 9
G Probleme mit Konsole Java Basics - Anfänger-Themen 4
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
G Probleme mit Eclipse oder der URL Klasse Java Basics - Anfänger-Themen 5
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
M Probleme mit Anzeigen von String in GUI und if-Anweisung Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben