Exception beim Verwenden von Arraylist?

nonoob

Mitglied
Hallo Community,

das ist mein erster Post in der Community und ich habe mir die Regeln durchgelesen. Ich bin absoluter noob im Programmieren und lerne es einfach hobbymäßig. Kein beruflicher, schulischer oder studentischer Zusammenhang. Also Hausaufgaben dürfte daher keiner für mich erleidgen ^^. Zu meiner Frage:

Ich versuche eine DartApp zu programmieren, bei der die geworfenen Punkte beim Dartspielen gezählt werden. Beim ausführen des Programms spuckt die Konsole eine Exception aus, mit der ich wenig anfangen kann. Ich habe bereits nach Lösungen gesucht, aber komme nicht weiter. Ich vermute der Fehler liegt darin, dass ich versuche, die ArrayList zwei Methoden aufrufen zu lassen.
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    5 KB · Aufrufe: 9
  • Unbenanntt.PNG
    Unbenanntt.PNG
    15,1 KB · Aufrufe: 4

kneitzel

Top Contributor
Der Index geht von 0 bis size-1
In der Schleife gehst Du aber bis einschließlich size() und dadurch kommt es zu der Exception.

Also die Schleifenbedingung ist mit i <= spielerListe.size() schlicht falsch.

Auch der Sinn der Schleife ergibt sich mir nicht wirklich. Wenn Du am Ende angekommen bist, dann soll es von Anfang an weiter gehen? Dann mach eine Endlosschleife oder so, damit das erkennbar ist.
 

nonoob

Mitglied
Java:
import java.util.ArrayList;

public class Dart {

    public static void main(String[] args) {

        boolean spielEnde = false;

        ArrayList<Spieler> spielerListe = new ArrayList<Spieler>();

        Spieler spieler1 = new Spieler("Ich");

        spielerListe.add(spieler1);

        spieler1.modus301();

        while (spielEnde == false) {
            for (int i = 0; i <= spielerListe.size(); i++) {
                spielerListe.get(i).punkteAbziehen(10, 10, 10);
            }
        }
    }
}

Java:
public class Spieler {
    
    private String name;
    private int punkte;
    private boolean spielEnde = false;

    
    public Spieler(String name){
        this.name = name;
    }
    
    public int punkteAbziehen(int Wurf1, int Wurf2, int Wurf3) {       
        if( Wurf1 +  Wurf2 +  Wurf3 > this.punkte) {
            System.out.println("Überworfen! Deine Punkte betragen immernoch: " + this.punkte);
        }else{
            this.punkte -= (Wurf1 + Wurf2 + Wurf3);
            if(this.punkte == 0) {
                spielEnde = true;
            }
        }return this.punkte;
    }
    
    public void status(){
        System.out.println("Spieler: " + this.name + " Punkte: " + this.punkte);
    }
    
    public int modus301()
    {
        this.punkte = 301;
        return this.punkte;
    }
    
    
    public int modus501(){
        this.punkte = 501;
        return this.punkte;
    }
}
 
Zuletzt bearbeitet von einem Moderator:

kneitzel

Top Contributor
for (int i = 0; i <= spielerListe.size(); i++) {
spielerListe.get(i).punkteAbziehen(10, 10, 10);

Dazu meinte ich schon:
Der Index geht von 0 bis size-1
In der Schleife gehst Du aber bis einschließlich size() und dadurch kommt es zu der Exception.

Also die Schleifenbedingung ist mit i <= spielerListe.size() schlicht falsch.


Du hast in spielerListe von mir aus 2 Elemente. Diese kannst Du dann mit spielerListe.get(0) und spielerListe.get(1) darauf zugreifen und spielerListe.size() gibt 2 zurück.

Deine Schleife läuft aber von 0, 1 bis 2. Und spielerListe.get(2) würde das 3. Element zurück geben und das gibt es nicht.

Bei Deiner Exception aus dem Bild in #1 hattest Du: Element mit id 1 war außerhalb des Bereichs bei nur einem Element. Ein Element bedeutet: Nur Index 0 ist belegt. Index 1 versucht auch das zweite Element zuzugreifen, das es aber nicht gibt.

Ist es deutlich geworden? Ansonsten mach in der Schleife noch eine kleine Ausgabe von i, damit Du siehst, auf was alles zugegriffen wird. Also sowas wie:
System.out.println(" i:= " + i + " size := " + spielerListe.size());
Dann siehst Du in der Ausgabe, auf welche Elemente er zugreift.
 

kneitzel

Top Contributor
Um evtl. auch die Behebung anzusprechen:
Also die Schleifenbedingung ist mit i <= spielerListe.size() schlicht falsch.
hatte ich ja schon erwähnt. Die Überlegung ist, von wo bis wo läuft der Index bei n Elementen?

Bei 2 Elementen hatte ich ja schon geschrieben: 0..1 sind die Indices.

Dann wäre die Frage, bis zu welchem Index es bei n Elementen geht.

Oder anders herum: Wir haben in der Erklärung festgestellt, dass die Anzahl der Elemente kein gültiger index mehr ist. Also i darf nicht gleich n sein (mit n: anzahl der Elemente) ...
 

EinNickname9

Bekanntes Mitglied
mit Code-Tags posten
Bin immer wieder beeindruckt, wie Leute es trotz bester Absicht immer wieder schaffen, alles falsch zu machen...

  • Code bitte formatiert in Code Tags setzen
  • Die Fehlermeldung des Compilers angeben
  • Die Fehlerzeile farblich hervorheben
  • Beschreibe das, was du machen willst, gemacht hast und was noch nicht funktioniert...
 

kneitzel

Top Contributor
Nunja - das mit den Code Tags hat er doch schon gemacht - da ist aber wohl beim Editieren der Start-Tag verloren gegangen weshalb der erste Code so angezeigt wird. Und die Probleme selbst waren in #1 in den Bildern. Daher ist das "alles falsch machen" doch stark übertrieben denke ich ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
Luk10 Exception beim Ausführen per Konsole Java Basics - Anfänger-Themen 6
C Brauche dringend hilfe beim exception im code Java Basics - Anfänger-Themen 5
C Exception beim Aufruf einer Methode Java Basics - Anfänger-Themen 2
H Exception beim umwandeln von String zu int Java Basics - Anfänger-Themen 4
S Schlechter Stil beim Exception Handling Java Basics - Anfänger-Themen 6
A Null Pointer Exception beim Erstellen eines Arrays aus einer eigenen Klasse Java Basics - Anfänger-Themen 3
W "Fatal exception Error" beim starten einer .jar Datei Java Basics - Anfänger-Themen 3
J Exception beim Bilder aufruf Java Basics - Anfänger-Themen 19
T Exception-Handling beim Lesen einer XML-Datei mit XMLDecoder Java Basics - Anfänger-Themen 4
R Exception beim Objekt speichern Java Basics - Anfänger-Themen 6
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4
P Exception werfen Java Basics - Anfänger-Themen 15
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
I OOP Was ist die "Exception Hierarchie" ? Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Mosquera Exception Java Basics - Anfänger-Themen 5
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
N Nullpointer exception Java Basics - Anfänger-Themen 4
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
S Array Grenzen-Exception Java Basics - Anfänger-Themen 11
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
G Arrays out of Bounds exception Java Basics - Anfänger-Themen 2
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
C Null Pointer Exception Java Basics - Anfänger-Themen 10
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
G Null Pointer Exception Java Basics - Anfänger-Themen 4
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
O Exception bei Parse-Vorgang Java Basics - Anfänger-Themen 17
T Exception Problem Java Basics - Anfänger-Themen 5
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
L Input/Output InputMismatch.Exception Java Basics - Anfänger-Themen 7
B Exception Liste von Liste Java Basics - Anfänger-Themen 3
D Throw Exception Java Basics - Anfänger-Themen 2
M JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
M Selbstdefinierte Exception Java Basics - Anfänger-Themen 5
B Exception Throwable Java Basics - Anfänger-Themen 11
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
H Erste Schritte Exception: 0 Java Basics - Anfänger-Themen 2
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Exception nur im "Debug"-Modus und jedem 3.-5. mal Ausführen Java Basics - Anfänger-Themen 3
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
L [JFrame] Exception - woher? Java Basics - Anfänger-Themen 8
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
R "Missbrauch" von Exception zum Programmfluss Java Basics - Anfänger-Themen 1
U Exception: OutOfMemoryError Java Basics - Anfänger-Themen 11
A Int Eingabe: String mit Exception abfangen. Aber wie? Java Basics - Anfänger-Themen 3
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
V Threads Exception in Thread behandeln Java Basics - Anfänger-Themen 3
F Java exception bei der Ausführung Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben