獲取不重複隨機數
阿新 • • 發佈:2019-01-29
今天重新考慮了一下獲取隨機數的方法;
如果不考慮重複數,那個簡單,就是random一下就行;
如果考慮到去重,那麼現在看可以有兩種大致方向;
第一種就是在獲取的結果集上進行去重,
第二種就是在資料來源頭上刪除已經獲取的數字;
第一種:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
/*
* 自己寫的實現四個隨機數
* 相比其他演算法簡單。 運用了 泛型 和 while迴圈;
*/
public class demo2 {
public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); Random r = new Random(); while(list.size()<4){ int num = r.nextInt(10); if(!list.contains(num)){ list.add(num); } } for(int a : list){ System.out.print(a+" "); } }
}
第二種:
public class demo3 {
/** * 獲取n個隨機數 * @param count 隨機數個數 * @return */ public String game(int count){ StringBuffer sb = new StringBuffer(); String str = "0123456789"; Random r = new Random(); for(int i=0;i<count;i++){ int num = r.nextInt(str.length()); sb.append(str.charAt(num)); str = str.replace((str.charAt(num)+""), ""); System.out.println(str); } return sb.toString(); } public static void main(String[] args) { demo3 t = new demo3(); System.out.println(t.game(4)); }
}
新手可以參考一下。