🆚
[Java]Math.random()とRandomの違い
基本構文
-
random.nextInt(100) + 1-
nextInt(100)は0〜99の整数を返す -
+1することで1〜100に変換
-
-
(int)(Math.random() * 100) + 1-
Math.random()は0.0〜1.0(1.0は含まない)のdoubleを返す -
*100で0.0〜100.0(100.0は含まない) -
(int)にキャストして0〜99になる -
+1で1〜100に変換
-
// Randomクラスを使用
Random random = new Random();
int answer = random.nextInt(100) + 1;
// Math.random() を使用
int answer = (int)(Math.random() * 100) + 1;
違い
| 項目 |
Randomクラス |
Math.random() |
|---|---|---|
| 型 |
Randomクラスのインスタンスが必要 |
staticメソッドなのでそのまま使える |
| 戻り値の型 | 直接intを返す |
doubleを返す |
| 柔軟性・機能 | より多くの乱数生成機能がある | 単純な乱数生成(0.0以上1.0未満のdouble) |
| スレッドセーフ性 | スレッドセーフではない | スレッドセーフ |
| シード設定 | 任意で設定可能 | シードを設定できない |
Discussion