ArrayIndexOutOfBounds---wo? und welche lösung?
-
Hallo Jungs und Mädels,
ich hab zwar in echt einfaches Problem, aber ich komm einfach nicht drauf.
es geht um dieses Array. Es ist eine Liste, an der ein neues Element angehangen werden soll. Neues größeres Array.Kopieren. das übliche eben...
public void add(int i){ if(this.contains(i)==false){ int[]neueMenge=new int[Menge.length+1]; if(Menge.length > 0){ for(int z= 0;z<=neueMenge.length-1;z++){ neueMenge[z]=Menge[z]; } } neueMenge[neueMenge.length-1]=i; Menge=new int[neueMenge.length]; for(int z= 0;z<neueMenge.length;z++){ Menge[z]=neueMenge[z]; } } }
kann mir wer helfen, warum der mir immer ArrayIndexOutofBounds liefert?
MfG
Wurmi
-
Spontandiagnose: Zeile fünf müsste eigentlich so aussehen:
for(int z = 0; z < neueMenge.length - 1; z++)
-
Omg. Stimmt Echt-kleiner! Ohje Ohje. Hat geklappt danke vielen Dank!
-
eventuell noch so als kleine anmerkung ... ich weiß natürlich nicht genau was du machen willst
aber zb springt zeile 2 auch ins auge
if(this.contains(i)==false){
ich glaub da wäre ein ! besser bzw contains gibt ja bereits einen boolean zurück, von dem her braucht man das eigentlich nicht nochmal "vergleichen" ... zuminderst würde sich das mMn "einfacher" lesen
if(!this.contains(i)){
eventuell auch statt sowas selbst zu schreiben einfach ne ArrayList verwenden ... aber eventuell ist das ja genau das was du machen willst ... so ne int[] mal selber implementieren ... da wäre es dann aber eventuell auch geschickter mit Object zu arbeiten, als mit int ... das wäre ja dann ein array das nur mit int umgehen kann ... ein object array könnte zb mit Integer, String etc pp umgehen
wie gesagt ... nur als anmerkung ... keine ahnung was du genau machen willst ^^
-
bei derartigen problemen ist der debugger dein bester freund. probiers mal aus