Hallo zusammen,
ich will eine ArrayList zufällig befüllen. Dabei sollen die einzelnen Felder jeweils eine gewisse, feste Chance haben beschrieben zu werden. Ich habe eine Lösung gefunden, aber die ist meiner Meinung nach etwas unschön. Das muss auf jeden Fall besser gehen. Kann mir jemand von euch weiterhelfen bzw. einen Tipp geben, wie das Ganze eleganter zu lösen ist?
Bei meiner Lösung habe ich lauter if abfragen, mit jeweils einem von-bis Bereich:
ich will eine ArrayList zufällig befüllen. Dabei sollen die einzelnen Felder jeweils eine gewisse, feste Chance haben beschrieben zu werden. Ich habe eine Lösung gefunden, aber die ist meiner Meinung nach etwas unschön. Das muss auf jeden Fall besser gehen. Kann mir jemand von euch weiterhelfen bzw. einen Tipp geben, wie das Ganze eleganter zu lösen ist?
Bei meiner Lösung habe ich lauter if abfragen, mit jeweils einem von-bis Bereich:
Java:
public static void ueber75M() {
altersklasse.addAll(Arrays.asList(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
int rnd;
int alter = 75;
for (int i = 0; i < alterUeber75; i++) {
rnd = (int) (Math.random() * 1002 + 1);
if (rnd <= 102)
altersklasse.set(0, (altersklasse.get(0) + 1));
if (rnd > 102 && rnd <= 204)
altersklasse.set(1, (altersklasse.get(1) + 1));
if (rnd > 204 && rnd <= 306)
altersklasse.set(2, (altersklasse.get(2) + 1));
if (rnd > 306 && rnd <= 408)
altersklasse.set(3, (altersklasse.get(3) + 1));
if (rnd > 408 && rnd <= 510)
altersklasse.set(4, (altersklasse.get(4) + 1));
if (rnd > 510 && rnd <= 574)
altersklasse.set(5, (altersklasse.get(5) + 1));
if (rnd > 574 && rnd <= 638)
altersklasse.set(6, (altersklasse.get(6) + 1));
if (rnd > 638 && rnd <= 702)
altersklasse.set(7, (altersklasse.get(7) + 1));
if (rnd > 702 && rnd <= 766)
altersklasse.set(8, (altersklasse.get(8) + 1));
if (rnd > 766 && rnd <= 830)
altersklasse.set(9, (altersklasse.get(9) + 1));
if (rnd > 830 && rnd <= 857)
altersklasse.set(10, (altersklasse.get(10) + 1));
if (rnd > 574 && rnd <= 884)
altersklasse.set(11, (altersklasse.get(11) + 1));
if (rnd > 884 && rnd <= 911)
altersklasse.set(12, (altersklasse.get(12) + 1));
if (rnd > 911 && rnd <= 938)
altersklasse.set(13, (altersklasse.get(13) + 1));
if (rnd > 938 && rnd <= 965)
altersklasse.set(14, (altersklasse.get(14) + 1));
if (rnd > 965 && rnd <= 971)
altersklasse.set(15, (altersklasse.get(15) + 1));
if (rnd > 971 && rnd <= 977)
altersklasse.set(16, (altersklasse.get(16) + 1));
if (rnd > 977 && rnd <= 983)
altersklasse.set(17, (altersklasse.get(17) + 1));
if (rnd > 983 && rnd <= 989)
altersklasse.set(18, (altersklasse.get(18) + 1));
if (rnd > 989 && rnd <= 995)
altersklasse.set(19, (altersklasse.get(19) + 1));
if (rnd > 995 && rnd <= 997)
altersklasse.set(20, (altersklasse.get(20) + 1));
if (rnd > 997 && rnd <= 999)
altersklasse.set(21, (altersklasse.get(21) + 1));
if (rnd > 999 && rnd <= 1000)
altersklasse.set(22, (altersklasse.get(22) + 1));
if (rnd > 1000 && rnd <= 1001)
altersklasse.set(23, (altersklasse.get(23) + 1));
if (rnd > 1001)
altersklasse.set(24, (altersklasse.get(24) + 1));
}
}