Emphus eredeti hozzászólása
Szerintem dragon megoldása nem feltétlen jó, ld. az equals metódus pontos leírását (ami csak akkor igaz, hogyha a két lista azonos elemszámú és azonos elemeket tatalmaz, ami ebben az esetben konkrétan soha nem lesz igaz, a contains metódussal lenne helyes). Amit én tudok, hogy a talán leghatékonyabb erre, hogyha feltöltesz egy tömböt 1-től n-ig, randomizálod az elemek sorrendjét, majd kiveszed belőle az első k darabot. Így k teljesen különböző, 1-n között lévő elemet kapsz. De amúgy gyors guglizás után (pl. "get unique random elements java") erre is rá lehetett volna persze találni.
Valóban elnéztem a dolgot, viszont a te módszerednél mi biztosítja, hogy nem lesz ismétlődés ?
Egyébként a Kód:
Arrays.asList(tomb).contains(randNum)
, sem azt csinálja amire gondoltam, mert azzal sem jó, ha lesz egy kis időm vizsgaidőszak után átnéztem a Java-t rég volt.
Ez már jó lesz. (remélem )
Kód:
public int[] veletlen(int min,int max,int db){
int randNum;
int[] tomb = new int[db];
for(int i=0;i!=db;i++)
{
do{randNum = (int)(min + (int)(Math.random()*max));}
while(ArrayUtils.contains(tomb, randNum));
tomb[i] = randNum;
}
return tomb;
}
Könyvjelzők