隨機產生一個整數
阿新 • • 發佈:2019-02-02
Random類
1.大家都是知道的在java裡工具類中本來就有一個可以隨機產生一個隨機數的類 Random類。
但是眾所周知的,這個類所產生一個隨機數是不排除不重複的部分,那麼今天我們就來實現一個隨機產生一個不重複的整數。
2.陣列的下標是不能重複的,當我們想要隨機的取陣列中的元素的時候,陣列的元素不重複,也就是我們可以隨機的去取陣列中元素的下標。java提供的這個工具可能就不那麼實用了。
3.那麼就來實現這個方法:
package cn.ygr.java1606Random_10_19; import java.util.Random; /** * 生成一個不重複的隨機數 * @author ygr * */ public class RandomUtil { public static Random random = new Random(); public static int[] getRandomIndex(int number) { int[] indexs = new int[number]; int n = 0; while (n < number) { indexs[n] = random.nextInt(number); /* * 排除重複生成隨機數 */ if (n >= 1) { int i = 0; while (i < n) { if (indexs[i] == indexs[n]) { break; } else { i++; } } if (i == n) { n++; } } else { n++; } } return indexs; } }
下面是測試類
package cn.ygr.java1606Random_10_19; /** * * @author ygr * */ public class RandomTest { public static void main(String[] args) { //String[] names = {"張三","李四","王二","麻子","小明","小紅","麗麗","小花","小黑","旺財"}; String[] names =new String[20];//定義一個20個人的陣列 ,隨機的去訪問他們的陣列下標0-19 int[] randoms = RandomUtil.getRandomIndex(20);//呼叫方法,傳入需要產生的隨機數的個數即可 for(int i : randoms){ System.out.println("生成一個隨機下標為:"+i); } } }
執行結果如圖: