Ich will eine Reihe von Zahlen, der Länge array.length. Dabei sollen nur ganze Zahlen von 0 bis array.length -1 auftreten, und keine doppelt. Die Zahlen sollen in der Reihenfolge in der sie auftreten in den Array reihe für die spätere Verwendung gespeichert werden. Allerdings funktioniert das Ablegen der Zahlen Array reihe überhaupt nicht.
Hier der Quellcode, mit println()-Anweisungen zur Kontrolle versehen:
Ich erhalte zum Beispiel diese beim Ausführen.
Die Zahlen werden also richtig ermittelt, nur kommt totaler Blödsinn im Array an.
Hier der Quellcode, mit println()-Anweisungen zur Kontrolle versehen:
Code:
BitSet b = new BitSet();
while (cnt < array.length)
{
int num = Math.abs(r.nextInt()) % array.length;
System.out.println(cnt+" : "+num);
if (!b.get(num))
{
b.set(num);
System.out.println("Count: "+cnt);
reihe[cnt] = num;
cnt++;
System.out.println("\n SOLL IN ARRAY AUFGENOMMEN: ------------>>>>>"+ num);
System.out.println("\n ARRAY ABER ZEIGT:"+ reihe[cnt]);
}
}
Ich erhalte zum Beispiel diese beim Ausführen.
Code:
0 : 1
Count: 0
SOLL IN ARRAY AUFGENOMMEN: ------------>>>>>1
ARRAY ABER ZEIGT:0
1 : 0
Count: 1
SOLL IN ARRAY AUFGENOMMEN: ------------>>>>>0
ARRAY ABER ZEIGT:0
2 : 3
Count: 2
SOLL IN ARRAY AUFGENOMMEN: ------------>>>>>3
ARRAY ABER ZEIGT:0
3 : 2
Count: 3
SOLL IN ARRAY AUFGENOMMEN: ------------>>>>>2
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at TestCoop.main(TestCoop.java:45)
Die Zahlen werden also richtig ermittelt, nur kommt totaler Blödsinn im Array an.