以下需求:
20%的概率去執行方法A,
1%的概率去執行方法B,
29%的概率去執行方法C,
50%的概率去執行方法D
如果用if隨機數之類的語句去判斷的話,可能會寫的很亂,我寫了一個隨機分發器,可以規範該操作。使用該分發器後的代碼如下:
複製代碼代碼如下:
//創建一個分發器
RandomDispatcher randomDispatcher = new RandomDispatcher();
//設置每種事件的概率,注意,概率之和不一定是100哦
randomDispatcher.put(20, 1);
randomDispatcher.put(1, 2);
randomDispatcher.put(29, 3);
randomDispatcher.put(50, 4);
//隨機
int retIndex = randomDispatcher.random();
//根據隨機結果去執行不同的方法
switch (retIndex) {
case 1:
System.out.println("do method A");
break;
case 2:
System.out.println("do method B");
break;
case 3:
System.out.println("do method C");
break;
case 4:
System.out.println("do method D");
break;
default:
break;
}