ArrayList Problem ?

Status
Nicht offen für weitere Antworten.

Bit2_Gosu

Bekanntes Mitglied
Hallo !

Ich brauche Eure Hilfe !

In meiner Klasse Strasse steht (neben anderen Sachen nat.):

Code:
public ArrayList <Ampel> ampListRe = new ArrayList <Ampel> ();
        
public void add(Ampel amp)
{
    ampListRe.add(amp);
}


Klasse Ampel:


Code:
public class Ampel extends Strasse
{
public int x;

public Ampel(int index, int x)
{
     this.x = x;
     this.index = index;
}  

public void schalten()
{
     if (index == 1) System.out.println(ampListRe.get(0).x);
}


Klasse Computer:

Code:
private Ampel[] ampel;

public computer()
{
   ampel = new Ampel[3];

   ampel[0] = new Ampel(0,0);		   
   ampel[1] = new Ampel(1,100);	    	
   ampel[2] = new Ampel(2,120);	  

   s = new Strasse(); 

   s.add(ampel[0]);
   s.add(ampel[1]);
   s.add(ampel[2]);  

takt()	
}

public void takt()
{
    ampel[0].schalten;
    ampel[1].schalten;
    ampel[2].schalten;
}


Er compiliert problemlos, aber sofort nach dem starten bricht er ab, mit:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(Unknown Source)
at src.ampelsystem.Ampel.schalten(Ampel.java:70)
at src.ampelsystem.Computer.takt(Computer.java:273)

usw.

Weiß jemand, woran das liegt ???

Vielen Dank für Eure Hilfe !
 

Zunera

Aktives Mitglied
Ja, du rufst nirgends ampel[1].add(<Ampel>) auf (denn nur bei ampel[1] wird ja das System.out in "schalten" aufgerufen), also hast du keine Elemente in deiner ArrayList...
Dein Code ist generell etwas strange, was willst du machen? Eine "Ampel" extends "Strasse"?? Klingt nicht logisch?! Logischer wäre zB "Autobahn" extends "Strasse" oder sowas in der Art...
 

Bit2_Gosu

Bekanntes Mitglied
Achso doch, ich hatte die jetzige Zeile 11 der Klasse Computer vergessen.

Und in Zeile 12, 13, 14 füge ich dann doch der ArrayList der Klasse Strasse Ampeln hinzu, oder ??

Aber du hast recht, ich hab mir mal statt dem anderen krams die größe der ArrayList ausgeben lassen. Sie ist immer 0.

Aber warum nur ?? Ich füge ihr doch wie gesagt etwas hinzu, oder ??
 

Zunera

Aktives Mitglied
Und in Zeile 12, 13, 14 füge ich dann doch der ArrayList der Klasse Strasse Ampeln hinzu, oder ??
Ja, das tust du, aber "s" verwendest du dann gar nicht mehr! Du fügst weder ampel[0], ampel[1] noch ampel[2] irgendetwas hinzu - und von diesen Objekten verwendest du dann in"takt" die Methode "schalten", worauf dann die java.lang.IndexOutOfBoundsException geworfen wird... (da wie gesagt auf diesen drei Objekten noch kein "add" angewendet wurde und sie daher leer sind).

[edit] Da ich nicht weiß, was du eigentlich erreichen willst, kann ich nicht genau sagen, was du am besten machen solltest...
 

Bit2_Gosu

Bekanntes Mitglied
Ahh, jetzt habs ich gerafft :D


Also, ich will im Prinzip eigentlich nur von einer der Ampeln (z.b ampel[1]) aus auf die variable x der anderen Ampeln zugreifen können.

Ich denke ich sollte das extends entfernen udn dafür "s" in schalten() als parameter weiter geben und dann das system.out.println so ändern:

system.out.printl(s.ampListRe.get(0).x);

oder meinst das wär net so das wahre
 

Zunera

Aktives Mitglied
Ich denke ich sollte das extends entfernen
Ja mach das, es ergibt bisher keinen Sinn - eine Ampel ist einfach keine (erweiterte) Strasse! :noe:
udn dafür "s" in schalten() als parameter weiter geben und dann das system.out.println so ändern:
system.out.printl(s.ampListRe.get(0).x);
oder meinst das wär net so das wahre
Ich stimme dir in allem zu: Es würde so irgendwie funktionieren... ist aber wirklich nicht das Wahre! :?

Versuche dir das ganze mal ganz realistisch und nicht Java-mäßig vorzustellen:

Eine Ampel gehört zu einer Kreuzung (Ausnahme: (reine) Fußgängerampeln).
Eine Ampel springt von Rot, auf Gelb, auf Grün und zurück.
Eine Ampel wird gesteuert.
...

Man könnte noch weitere Überlegungen anstellen, soviel nur in aller Schnelle. Aber was können wir daraus für uns und unsere Java-Objekte ableiten? zB:

Eine Kreuzung kann man als ein besonderen Strassenabschnitt sehen, der Ampeln hat, also:

Code:
public class Kreuzung extends Strasse
{
   public ArrayList <Ampel> ampListRe = new ArrayList <Ampel> ();
       
   public void add(Ampel amp)
   {
      ampListRe.add(amp);
   }
}
(wobei ich jetzt von Strassen ausgehe, die ansonsten keine Ampeln haben)

Eine Ampel hat Zustände:
Code:
public class Ampel
{
   public static final int AUS = 0;
   public static final int ROT = 1;
   public static final int GELB = 2;
   public static final int GRUEN = 4;
   
   private int zustand;
    
   public Ampel()
   {
      zustand = AUS;
   }
}
Eine Ampel wird gesteuert, also muss der Zustand änderbar sein:

Code:
public class Ampel
{
   public static final int AUS = 0;
   public static final int ROT = 1;
   public static final int GELB = 2;
   public static final int GRUEN = 4;
   
   private int zustand_;
    
   public Ampel()
   {
      zustand_ = AUS;
   }

   public void setzeZustand(int neuerZustand)
   {
      zustand_ = neuerZustand;
   }
}
usw.

Das war nur ein kleiner Anstoss, man kann sich die Objekte auch mit anderen Eigenschaften vorstellen, je nachdem was man erreichen möchte... und das weiß ich bei dir noch immer nicht. Willst du eine Ampelschaltung realisieren/simulieren? Willst du ein Strassennetz mit Ampeln darstellen? In jedem Fall solltest du dir vorerst Gedanken machen, wie dein Projekt aufgebaut sein sollte und welche Objekte du dafür brauchst und wie diese sinnvoll zusammenhängen können... Viel Erfolg! :cool:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R ArrayList Problem Java Basics - Anfänger-Themen 6
M Problem mit ArrayList Java Basics - Anfänger-Themen 32
X Problem mit Arraylist in Arraylist Java Basics - Anfänger-Themen 2
J Threads Problem mit eigener ArrayList Java Basics - Anfänger-Themen 2
A Collections Problem mit ArrayList Java Basics - Anfänger-Themen 10
P Input/Output Problem bei Ausgabe von Arraylist Java Basics - Anfänger-Themen 6
O Klasse in ArrayList speichern Problem -gleiche Speicheradresse Java Basics - Anfänger-Themen 2
K ArrayList<Integer> problem Java Basics - Anfänger-Themen 3
B ArrayList Problem Java Basics - Anfänger-Themen 3
J Threads ArrayList Problem bei Threads Java Basics - Anfänger-Themen 3
B ArrayListe in Arraylist Problem Java Basics - Anfänger-Themen 3
G Arraylist Problem Java Basics - Anfänger-Themen 4
S problem mit ArrayList.clear Java Basics - Anfänger-Themen 2
B ArrayList-Problem Java Basics - Anfänger-Themen 2
R ArrayList Problem Java Basics - Anfänger-Themen 12
T Collections Problem mit ArrayList Java Basics - Anfänger-Themen 2
K Problem mit ArrayList Java Basics - Anfänger-Themen 4
B Problem bei ArrayList Java Basics - Anfänger-Themen 5
J Problem beim Löschen von elementen aus einer ArrayList Java Basics - Anfänger-Themen 5
J Problem Arraylist durchlaufen Java Basics - Anfänger-Themen 7
M ArrayList<int[]> - Problem mit JList! Java Basics - Anfänger-Themen 27
A ArrayList<T>: Problem mit contains() bei parametrisiertem T Java Basics - Anfänger-Themen 6
J ArrayList Problem Java Basics - Anfänger-Themen 5
G ArrayList Problem Java Basics - Anfänger-Themen 2
B ArrayList Code-Problem Java Basics - Anfänger-Themen 36
S ArrayList-Problem? Java Basics - Anfänger-Themen 3
A arraylist speichern/laden problem Java Basics - Anfänger-Themen 3
zilti Problem mit static ArrayList Java Basics - Anfänger-Themen 3
T Problem mit ArrayList Java Basics - Anfänger-Themen 6
G ArrayList Problem Java Basics - Anfänger-Themen 2
M ArrayList problem Java Basics - Anfänger-Themen 3
T von ArrayList erben - Problem mit Generics Java Basics - Anfänger-Themen 2
W Problem beim lesen aus Arraylist Java Basics - Anfänger-Themen 2
0 Kleines Problem mit ArrayList Java Basics - Anfänger-Themen 25
J konkretes problem mit arraylist Java Basics - Anfänger-Themen 15
A Problem mit ArrayList Java Basics - Anfänger-Themen 6
S ArrayList - WrapperKlassen - PROBLEM Java Basics - Anfänger-Themen 25
krgewb ArrayList allgemein halten Java Basics - Anfänger-Themen 6
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
W ArrayList und toString Java Basics - Anfänger-Themen 17
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
M 2d ArrayList durchgehen Java Basics - Anfänger-Themen 2
Blkckroll45 Arraylist Java Basics - Anfänger-Themen 6
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
M ArrayList<TreeNode<T>> fortlaufende Nummerierung der Elemente Java Basics - Anfänger-Themen 5
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
F Werte in einer Arraylist Zählen Java Basics - Anfänger-Themen 2
F Erste Schritte Zahlenreihe von Arraylist in 3erBlöcke sortiert in neue Arraylist Java Basics - Anfänger-Themen 2
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
F Methode ArrayList mit Eingabewert Java Basics - Anfänger-Themen 2
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
thobren jtable arraylist Java Basics - Anfänger-Themen 12
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
Zeppi OOP ArrayList Java Basics - Anfänger-Themen 2
P ArrayList Java Basics - Anfänger-Themen 4
L ArrayList auf 4 Elemente begrenzen Java Basics - Anfänger-Themen 56
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
M For Schleife/ArrayList Java Basics - Anfänger-Themen 12
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
L Längstes Element einer ArrayList ausgeben Java Basics - Anfänger-Themen 9
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
M ArrayList in GUI ausgeben Java Basics - Anfänger-Themen 1
J Nur bestimmter Typ aus der ArrayList ausgeben. Java Basics - Anfänger-Themen 9
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
krgewb ArrayList von ArrayList Java Basics - Anfänger-Themen 2
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
O Namen (mit Umlauten und ß) in einer ArrayList suchen Java Basics - Anfänger-Themen 5
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
S ArrayList in andere Klasse übernhemen Java Basics - Anfänger-Themen 5
M Letztes Element einer ArrayList Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben