title image


Smiley Ganz kniffelig... (Vector Array)
Hallo!



Wollte eine Methode schreiben, die ein Array zufällig durchmischt.



Folgender Code kompiliert, löst aber meistens eine exception aus:













import java.util.*;



public class TesteShaker {



public static void main(String[] args) {

int i;



int[] columns = new int[]{0, 1, 2, 4, 5, 6, 7};



for (i = 0; i < columns.length; i++) {



;

System.out.print((columns[i]) + " ");

}

System.out.print("\n");



columns = shake(columns);



for (i = 0; i < columns.length; i++) {



;

System.out.print((columns[i]) + " ");

}

}



private static int[] shake(int[] c) {



int[] tmp = new int[7];

Vector v = new Vector();

for (int i = 0; i < 7; i++) {



v.add(new Integer(c[i]));

}

int j = 0;

while (v.size() > 0) {



int el = (int) Math.round(Math.random() * v.size());

tmp[j] = ((Integer) v.elementAt(el)).intValue();

v.removeElementAt(el);

j++;

}



return tmp;

}

}









Beim Achten Versuch klappte es folgendermaßen: > java TesteShaker

0 1 2 4 5 6 7

5 7 4 0 2 6 1



Sonst kommt aber oft: > java TesteShaker

0 1 2 4 5 6 7

java.lang.ArrayIndexOutOfBoundsException: 5 >= 5

at java.util.Vector.elementAt(Unknown Source)

at TesteShaker.shake(TesteShaker.java:33)

at TesteShaker.main(TesteShaker.java:16)

Exception in thread "main" Process java exited with code 1



statt 5 >=5 stand auch schon 2 >= 2 oder 1 >=1



Hat jemand eine Ahnung, woran das liegen kann?



LG,

wartenaufgodot





geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: