Hallo, ich muss zu morgen mein Protokoll abgeben und an einer Sache meckert mein Compiler immer rum:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at Roboter.followR1(Roboter.java:23)
at Roboter.main(Roboter.java:51)
"
kann mir jemand sagen was er damit meint. Ich finde den Fehler nicht der Cose ist :
wäre wirklich mega wenn mir das jemand sagen könnte. Wenn ich in followR1 etwas hinter die ForSchleife packe wird das übrigens ignoriert. Ich denke mal das dass damit zusammen hängt oder?Code:Robot: import java.util.ArrayList; class Roboter { Point rp = new Point(); double phi=0.0; Route route=new Route(); RouteTrace trace=new RouteTrace(); Roboter() { rp.setLocation(0.0, 0.0); } void followR1(Route r) { ArrayList <Point> RoutenlisteR = new ArrayList<Point>(); ArrayList <Point> Routenliste = new ArrayList<Point>(); Routenliste.addAll(0, r.getRoutenliste()); for(int i=0;i<=Routenliste.size();i++) { Point P=r.Routenliste.get(i); if(Routenliste.add(P)==true) { trace.hinzufügen(P); } else { i=Routenliste.size(); } } System.out.println("LALA"); for(int j=0;j<=trace.getRouteTrace().size();j++) { System.out.println("LALA"); } } public static void main(String[] args) { Roboter robo=new Roboter(); Route route1=new Route(); route1.neuerPunkt(new Point(5.0,5.3)); route1.neuerPunkt(new Point(6.0,5.3)); route1.neuerPunkt(new Point(7.0,5.3)); route1.neuerPunkt(new Point(5.0,5.3)); robo.followR1(route1); } } und Route: import java.util.ArrayList; public class Route { ArrayList <Point> Routenliste = new ArrayList<Point>(); Route() { } void Ausgabe() { for(int i=0;i<Routenliste.size();i++) Routenliste.get(i).Ausgabe(); } void neuerPunkt(Point e) { Routenliste.add(e); } int getLength() { return Routenliste.size(); } Point getWert(int i) { return Routenliste.get(i); } ArrayList<Point> getRoutenliste() { return Routenliste; } }
Gruss Paddel