Methoden Rückgabe Arrays aufangen

R

Ro0kie

Gast
Liebes Java-forum.org!

Ich habe eine Methode die mir ein Array zurück gibt nur wenn ich es mit einem anderen Array aufangen will kriege ich eine IndexOutOfBoundsEXception. :eek:

Java:
/**
 * Testklasse für die Klassen NWuerfel und Wuerfel, die nebenbei auch noch eine 
 * Statistik der gewürfelten Augen erstellt.
 *
 * @author Martin S
 * @version 2011-05-22
 */
public class Wuerfelstatistik {
    public static void main(String [] args){
        int[][] testarray = new int[100][100];
        //Befüllen des Arrays
        for(int l =0;l<testarray.length;l++){
           for(int k=0; k<testarray[l].length;k++){
               testarray = NWuerfel.nwuerfeln(1,1);
           }
        }

        //Ausgeben des Arrays
        for(int i =0;i<testarray.length;i++){
           for(int j=0; j<testarray[i].length;j++){
             System.out.println(testarray[i][j]);
           }
        }
    }
}

Java:
/**
 * Klasse welche das würfeln mit meheren Würflen simuliert.
 *
 * @author Martin S
 * @version 2011-05-22
 */
public class NWuerfel {
    public static int[][] nwuerfeln(int nwuerfel,int wurfanzahl){
        int[][] ngewuerfelt = new int [nwuerfel][wurfanzahl];
        for(int i =nwuerfel;i>0;i--){
            for(int j =0;j<wurfanzahl;i++){
                ngewuerfelt[i][j]=Wuerfel.wuerfeln();

            }
        }
        return ngewuerfelt;
    }

}

Java:
/**
 * Klasse,welche einen Würfel simuliert.
 * 
 * @author Martin S
 * @version 2011-05-22
 */
public class Wuerfel {
    /**
     * Methode,welche das würflen eines Würfels mit 6 Augen simuliert.
     *
     * @return gewuerfelt Gibt die gewürfelte Augenzahl zurück.
     */
    public static int wuerfeln(){
        int gewuerfelt =(int) (Math.random()*6+1);
        return gewuerfelt;
    }

}

Hat jemand eine Idee ?
Danke im voraus ! :)

MfG Ro0kie ;)
 

jgh

Top Contributor
du definierst ein int-Array mit der Länge [1,1] =>
Code:
int[][] ngewuerfelt = new int[nwuerfel][wurfanzahl];
=> du kannst nur auf das eine Element zugreifen [c]ngewuerfelt[0][0] [/c] , alles andere wirft dir halt die java.lang.ArrayIndexOutOfBoundsException
und du versuchst mit dem Index 1 auf das zweite, nicht vorhandene Element zuzugreifen.
 
R

Ro0kie

Gast
Das löst mein Problem noch immer nicht, es liegt am aufangen des Rückagabe Array wie kann ich das in einem Array aufangen sprich alle werte in ein Array übertragen ?:rtfm:
 

nrg

Top Contributor
dann wäre die fehlermeldung hilfreich

edit: gibt es dazu eine aufgabenstellung? zugegeben, ich hab mich auch nicht gerade bemüht ihn zu finden aber mir ich frage mich noch nach dem sinn ;)
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Java:
        for(int i =nwuerfel;i>0;i--){
            for(int j =0;j<wurfanzahl;i++){

Willst du bei der zweiten nicht j hochzählen?

Und nwuerfeln liefert doch schon ein 2-Dim Array, wieso willst dudas also nochmals in einer/bzw zwei Schleife befüllen?
->
Java:
        //Befüllen des Arrays
        for(int l =0;l<testarray.length;l++){
           for(int k=0; k<testarray[l].length;k++){
               testarray = NWuerfel.nwuerfeln(1,1);
           }
        }
???:L
 

nrg

Top Contributor
den letzten fehler in deinen for-scheifen müsste dir dann era gesagt haben.

nochmal zum Sinn:
Java:
public class Wuerfelstatistik {
    public static void main(String [] args){
        int[][] testarray = NWuerfel.nwuerfeln(100,100);
        //Ausgeben des Arrays
        for(int i =0;i<testarray.length;i++){
           for(int j=0; j<testarray[i].length;j++){
             System.out.println(testarray[i][j]);
           }
        }
    }
}

so würde es für mich denke mehr Sinn machen. achja, die Methode nwuerfeln passt wunderbar in die Klasse Wuerfel. dafür eine neue Klasse zu machen, halte ich für unnötig
 
R

Ro0kie

Gast
dann wäre die fehlermeldung hilfreich

edit: gibt es dazu eine aufgabenstellung? zugegeben, ich hab mich auch nicht gerade bemüht ihn zu finden aber mir ich frage mich noch nach dem sinn ;)

Aufgabenstellung ist wie immer eine Programmierhausübung Zitat
Erstelle die Klassen Wuierfel, NWuerfel und eine Applikation die eine Statistik über die erwürfelte Auganzahl anzeigt.

Willst du bei der zweiten nicht j hochzählen?

Und nwuerfeln liefert doch schon ein 2-Dim Array, wieso willst dudas also nochmals in einer/bzw zwei Schleife befüllen?

Das mit dem j war eib Kopierfehler hab ich behoben.

hab den code erneuert :
Java:
/**
 * Testklasse für die Klassen NWuerfel und Wuerfel, die nebenbei auch noch eine 
 * Statistik der gewürfelten Augen erstellt.
 *
 * @author Martin Suschny
 * @version 2011-05-22
 */
public class Wuerfelstatistik {
    public static void main(String [] args){
        int[][] testarray = NWuerfel.nwuerfeln(1,2);
        
        
        
        

        //Ausgeben des Arrays
        for(int i =0;i<testarray.length;i++){
           for(int j=0; j<testarray[i].length;j++){
             System.out.println(testarray[i][j]);
           }
        }
    }
}
 

nrg

Top Contributor
Erstelle die Klassen Wuierfel, NWuerfel und eine Applikation die eine Statistik über die erwürfelte Auganzahl anzeigt.

naja dann vergiss das und mach es lieber nach aufgabenstellung. wobei ich es echt für überflüssig halte. zudem erschließt sich mir noch nicht ganz, warum du überhaupt ein 2d array nimmst
 

nrg

Top Contributor
Dammit ich eine Zusatzfunktion einabauen kann die erkennt in welchen Würfelrunde was gewürfelt worden ist :D

wenn ich das jetzt richtig verstanden habe, würde ich mir das dann wieder an einer anderen stelle merken. aber gut, das ist jetzt offtopic. wenn deine code jetzt funktioniert, ist das thema ja erledigt
 

nrg

Top Contributor
du fängst es nicht auf sondern weisst einfach das ergebnis einer methode einer variable zu.

Java:
int[][] testarray = NWuerfel.nwuerfeln(1,2);
 
R

Ro0kie

Gast
ich kapiers nicht ich hab alles richtig gemacht aber es funktioniert noch immer nicht !
:autsch::mad::wuerg:
 
R

Ro0kie

Gast
dann wäre dein aktueller code auch noch interessant...

Java:
/**
 * Testklasse für die Klassen NWuerfel und Wuerfel, die nebenbei auch noch eine 
 * Statistik der gewürfelten Augen erstellt.
 *
 * @author Martin S
 * @version 2011-05-22
 */
public class Wuerfelstatistik {
    public static void main(String [] args){
        int[][] testarray = NWuerfel.nwuerfeln(1,2);
        
        
        
        

      
    }
}

Java:
/**
 * Klasse welche das würfeln mit meheren Würflen simuliert.
 *
 * @author Martin S
 * @version 2011-05-22
 */
public class NWuerfel {
    /**
     *
     * @param nwuerfel
     * @param wurfanzahl
     * @return
     */
    public static int[][] nwuerfeln(int nwuerfel,int wurfanzahl){
        int[][] ngewuerfelt = new int [nwuerfel][wurfanzahl];
        for(int i =nwuerfel;i>0;i--){
            for(int j =0;j<wurfanzahl;j++){
                ngewuerfelt[i][j]=Wuerfel.wuerfeln();

            }
        }
        return ngewuerfelt;
    }

}

Java:
/**
 * Klasse,welche einen Würfel simuliert.
 * 
 * @author Martin S
 * @version 2011-05-22
 */
public class Wuerfel {
    /**
     * Methode,welche das würflen eines Würfels mit 6 Augen simuliert.
     *
     * @return gewuerfelt Gibt die gewürfelte Augenzahl zurück.
     */
    public static int wuerfeln(){
        int gewuerfelt =(int) (Math.random()*6+1);
        return gewuerfelt;
    }

}
 

nrg

Top Contributor
ok dann nochmal in ruhe:
wenn du ein array intialisiert gibst du die größe des arrays in den eckigen klammern an. also bei
Code:
int[] array = new int[5];
erhälst du ein array mit der größe 5. die größe wird dabei als final attribute
Code:
length
gespeichert. das heisst also array.length liefert dir 5. nachdem aber der index bei 0 anfängt zu zählen, hast du nur die indizes 0, 1, 2, 3, 4 zur verfügung. d.h. dein erstes element ist die 0 und dein letztes in diesem fall die 4 oder in jedem fall dynamisch
Code:
array.length-1

edit: und um das nochmal auf dein problem zu referenzieren: du versucht eine leiter herunterzuklettern und greifst als erstes an die 6te sprosse, wenn die leiter aber nur 5 hat > du fällst
 
R

Ro0kie

Gast
Aso ja das meinst du ;)

da aber in meiner Testklasse
Code:
int[][] testarray = NWuerfel.nwuerfeln(1,2);
, wird ja ein 2D Array mit 1 length und 2 Arrays drinen erzeugt und das wiederum ist ja dann gleich testarray, hab ich recht ?
wenn ja wieso krieg ich dann einen IndexOutofbounds-Fehler ?
 

nrg

Top Contributor
also gerade stehst du schon gewaltig auf dem schlauch oder?

Java:
for(int i = nwuerfel; i > 0 ; i--) {
in dieser zeile intialisiert du
Code:
i
mit
Code:
nwuerfel
.
Code:
nwuerfel
ist in dem fall das gleiche ist wie
Code:
array.length
. ich habe dir jetzt 3 mal erklärt, dass es diesen index nicht gibt und der letzte index in einem array immer arrayName.length-1 ist.

aber probier es doch einfach mal aus....
Java:
for(int i = nwuerfel-1; i > 0 ; i--) {

achja: ich frage mich eh, warum du da rückwärts iterieren möchtest....
 
R

Ro0kie

Gast
Ich war nur so verwierrt weils ich es andauernd in der testklasse probiert habe hättest du gleich gesagt in der NWuerfel Klasse :p :lol:
 

nrg

Top Contributor
hab doch gleich am anfang den schleifenkopf gepostet und darin nur -1 hinzugefügt :).
ausserdem wenn du dir den stacktrace der exception anschaust, siehst du doch auch, dass es überhaupt nichts mit der main zu tun hat. es wird nur über die main durchgereicht/geworfen aber dein verursacher ist:
Code:
NWuerfel.nwuerfeln(NWuerfel.java:19)
also Methode nwuerfeln in der Klasse NWuerfel in der Zeile 19.
 
R

Ro0kie

Gast
Java:
/**
 * Klasse welche das würfeln mit meheren Würflen simuliert.
 *
 * @author Martin S
 */
public class NWuerfel {
    /**
     *
     * @param nwuerfel
     * @param wurfanzahl
     * @return
     */
    public static int[][] nwuerfeln(int nwuerfel,int wurfanzahl){
        int[][] ngewuerfelt = new int [nwuerfel][wurfanzahl];
        for(int i = nwuerfel-1; i > 0 ; i--) {
            for(int j =0;j<wurfanzahl;j++){
                ngewuerfelt[i][j]=Wuerfel.wuerfeln();

            }
        }
        return ngewuerfelt;
    }

}

Java:
/**
 * Testklasse für die Klassen NWuerfel und Wuerfel, die nebenbei auch noch eine 
 * Statistik der gewürfelten Augen erstellt.
 *
 * @author Martin S
 * @version 2011-05-22
 */
public class Wuerfelstatistik {
    public static void main(String [] args){
        int[][] testarray = NWuerfel.nwuerfeln(1,2);

        for(int i = 0; i < testarray.length-1 ; i++) {
            for(int j =0;j<testarray[j].length;j++){
                System.out.println(testarray[i][j]);
                
            }
        }
        
        
        
        

      
    }
}

Komisch Ausgabe ist nichts ? ???:L :eek:
 

nrg

Top Contributor
Java:
// ...
        for(int i = 0; i < testarray.length-1 ; i++) {
            for(int j =0;j<testarray[j].length;j++){
                System.out.println(testarray[i][j]);
                
            }
        }
// ...

Komisch Ausgabe ist nichts ? ???:L :eek:

du musst meine posts schon lesen und auch verstehen. deine äußere schleife geht solange, wie i kleiner testarray.length-1. das ist falsch... verstehe auch nicht warum du es dann in der inneren schleife richtig machts und selbst nie auf die idee kommst, dir auch nur 2 minuten gedanken über deinen code und den postings hier zu machen...
nachdem ich lange erklärungen aufgegeben habe:

ein 2d array iteriert man so:
Java:
for (int i = 0; i < array.length; i++) {
   for (int j = 0; j < array[i].length; j++) {
      // array[i][j]
   }
}

oder mit einer foreach (z.b. bei einem int array):
Java:
for (int[] a : array) {
   for (int i : a) {
      // i
   }
}


edit: um es noch vollständig zu machen.
rückwärts iteriert man so:
Java:
for (int i = array.length-1; i >= 0; i--) {
   for (int j = array[i].length-1; j >= 0; j--) {
      // array[i][j]
   }
}
weil das ist ja auch noch falsch in deiner schleife... hatte ich aber beim ersten post auch nicht gesehn
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Rückgabe eines Arrays durch Funktion Allgemeine Java-Themen 9
S Java Problem bei der Rückgabe eines Arrays Allgemeine Java-Themen 19
I Rückgabe eines Arrays aus einer Methode, wie sicher? Allgemeine Java-Themen 3
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
D Problem mit der Rückgabe von Raw-Types Allgemeine Java-Themen 2
S Polymorphie generischer Rückgabe-Typ Allgemeine Java-Themen 4
M Einmalige Rückgabe eines Wertes? Allgemeine Java-Themen 8
H SQL Update "Rückgabe der DB als String?" Allgemeine Java-Themen 7
Redfrettchen Rückgabe nicht sinnvoll: Exception oder null zurück? Allgemeine Java-Themen 9
S Rückgabe Allgemeine Java-Themen 6
R Rückgabe 2 Werte Allgemeine Java-Themen 5
Ü Arrays vergleichen Allgemeine Java-Themen 59
Ü Methoden Arrays vergleichen - Methode Allgemeine Java-Themen 1
Ü Eurobeträge in möglichst wenig Scheine/Münzen zerlegen (2D-Arrays) Allgemeine Java-Themen 27
Buroto Arrays generator Allgemeine Java-Themen 10
B Arrays von Methoden möglich? Allgemeine Java-Themen 44
rosima26 Bester Sortieralgorithmus für kurze Arrays Allgemeine Java-Themen 40
B Lottospiel, genug Reihen tippen für 3 Richtige (Spaß mit Arrays)? Allgemeine Java-Themen 46
Muatasem Hammud Erstellung von Testdaten für Arrays Allgemeine Java-Themen 6
Junger_Basileus Attribute, Arrays, Schleifen Allgemeine Java-Themen 9
P Generics und Arrays Allgemeine Java-Themen 6
O Arrays an DOCX-Stamper Library übergeben Allgemeine Java-Themen 1
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
R Zeilen eines 2d Arrays abwechselnd links und rechts mit Nullen auffüllen Allgemeine Java-Themen 14
R Spalten/Zeilen verschieben in zweidimensionalen Arrays? Allgemeine Java-Themen 3
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
W Spaß mit Arrays Allgemeine Java-Themen 1
W Reflexion und Arrays Allgemeine Java-Themen 7
S Problem mit Arrays Allgemeine Java-Themen 1
D Erste Schritte Arrays vergleichen und die zahlen die nur einmal vorkommen ausgeben Allgemeine Java-Themen 5
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
Neoline Interpreter-Fehler Probleme mit Arrays.toString Allgemeine Java-Themen 7
H Zweidimensionale Arrays Allgemeine Java-Themen 6
Neoline Methoden Zwei Arrays abwechselnd zusammenführen Allgemeine Java-Themen 15
J Methoden clone(), arraycopy(): ein- und zweidimensionale Arrays Allgemeine Java-Themen 8
D Übereinstimmungen in Arrays Allgemeine Java-Themen 5
B Arrays mit Text und Zahlen füllen Allgemeine Java-Themen 3
B Spalten eines 2d-Arrays Allgemeine Java-Themen 2
J Arrays auf gleichheit untersuchen funktioniert nicht Allgemeine Java-Themen 11
N 2 Arrays abwechselnd verbinden Allgemeine Java-Themen 13
J private and arrays Allgemeine Java-Themen 2
T Alle Kombinationen aus zwei Arrays Allgemeine Java-Themen 8
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
H Datentypen Typ eines Arrays überprüfen Allgemeine Java-Themen 9
C Zweidimensionale Arrays - Quadratisch? Allgemeine Java-Themen 4
AssELAss Zwei Arrays / ArrayLists inhaltlich vergleichen Allgemeine Java-Themen 2
A Lineare Interpolation mit zwei Arrays Allgemeine Java-Themen 4
S Datentypen Warum ist bei Arrays die Länge als Property aufrufbar? Allgemeine Java-Themen 1
Dechasa Vergleichen von zwei Arrays Allgemeine Java-Themen 4
DanielsLPecke Java Arrays an andere Java Programme schicken und zurück Allgemeine Java-Themen 5
H Arrays Allgemeine Java-Themen 4
J NullPointerExeption bei Inizialisierung eines Arrays Allgemeine Java-Themen 3
D Größe der Zahlenkombinationen eines Arrays begrenzen Allgemeine Java-Themen 3
B automatisch benannte arrays erstellen Allgemeine Java-Themen 9
Y inhalte aus 2 unterschiedlichen Arrays miteinander vergleichen Allgemeine Java-Themen 12
M Arrays.sort Problem Allgemeine Java-Themen 2
F Arrays Allgemeine Java-Themen 2
F Arrays Allgemeine Java-Themen 4
N Werte aus Arrays auslesen funktioniert nicht Allgemeine Java-Themen 5
F mehrdimensionale Arrays Allgemeine Java-Themen 4
A Methoden Generische Methode mit Arrays - Source Compatibility 1.7 benötigt, wieso? Allgemeine Java-Themen 3
I Verschiedene Arrays auslesen Allgemeine Java-Themen 6
R Wie kann man diese Methoden in arrays etablieren? Allgemeine Java-Themen 8
C Best Practice [Arrays] Wie sinnvoll prüfen, ob Array primitive Datentypen enthält? Allgemeine Java-Themen 6
C Best Practice Tiefe Kopie eines Arrays unbekannter Dimension und unbekannten Typs Allgemeine Java-Themen 4
R kann man irgendwie mit Arrays mit Eingabefenstern und Schleifen Werte abklappern? Allgemeine Java-Themen 2
R Was los mit dieser Aufgabe? Arrays mit Schachbrettmustern? Allgemeine Java-Themen 10
M Eingabe von Arrays geht über gewünschte Anzahl hinaus Allgemeine Java-Themen 2
K Methoden Arrays auf true Werte prüfen Allgemeine Java-Themen 4
T String Arrays aus den Argumenten auslesen Allgemeine Java-Themen 3
E ArrayIndexOutOfBounds - mehrdimensionale Arrays Allgemeine Java-Themen 6
D Arrays überschreiben sich Allgemeine Java-Themen 2
C Klonen von Arrays/ Matrizenrechnung Allgemeine Java-Themen 2
K Mehrere Arrays auf einmal erstellen Allgemeine Java-Themen 2
P Arrays erzeugen Allgemeine Java-Themen 5
R ListIterator über mehrere Arrays Allgemeine Java-Themen 13
S Variablen Dynamische Arrays Allgemeine Java-Themen 2
O Variablen System.getenv: Sinnlose Werte, Arrays?! Allgemeine Java-Themen 6
C Arrays.asList() - Problem Allgemeine Java-Themen 3
M problem mit speicherbedarf von arrays Allgemeine Java-Themen 14
B Generics und primitve arrays Allgemeine Java-Themen 6
V Umbennen von Arrays Allgemeine Java-Themen 7
M Einfluss von Caching auf die Performance (große Arrays) Allgemeine Java-Themen 24
A Frage zu Arrays Allgemeine Java-Themen 6
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
T Arrays erstellen Allgemeine Java-Themen 3
C Zwei Arrays vereinen Allgemeine Java-Themen 3
J Array Sortierung auf andere Arrays anwenden Allgemeine Java-Themen 6
D Vertauschen von arrays vom Typ String Allgemeine Java-Themen 2
BattleMaster246 Arrays funktionieren nicht Allgemeine Java-Themen 6
S "Arrays" mit String-Key? Allgemeine Java-Themen 3
L verkettete Listen oder Arrays + Indexlisten effizienter? Allgemeine Java-Themen 3
S Überprüfung/Parsen eines Byte-Arrays Allgemeine Java-Themen 9
Developer_X Aus Datei in Arrays laden-Problem Allgemeine Java-Themen 5
O Problem beim Ausgeben von Arrays Allgemeine Java-Themen 9
G Arrays.toString Allgemeine Java-Themen 4
S to string mit arrays Allgemeine Java-Themen 10
S Objekte mit Arrays Allgemeine Java-Themen 9
Meldanor Mehrdimensionale Arrays : Zugriff auf n-tes Array Allgemeine Java-Themen 5
K Arrays.asList und primitive Typen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben