java隨機(jī)事件分發(fā)器示例
以下需求:
20%的概率去執(zhí)行方法A,
1%的概率去執(zhí)行方法B,
29%的概率去執(zhí)行方法C,
50%的概率去執(zhí)行方法D
如果用if隨機(jī)數(shù)之類的語句去判斷的話,可能會寫的很亂,我寫了一個隨機(jī)分發(fā)器,可以規(guī)范該操作。使用該分發(fā)器后的代碼如下:
//創(chuàng)建一個分發(fā)器
RandomDispatcher randomDispatcher = new RandomDispatcher();
//設(shè)置每種事件的概率,注意,概率之和不一定是100哦
randomDispatcher.put(20, 1);
randomDispatcher.put(1, 2);
randomDispatcher.put(29, 3);
randomDispatcher.put(50, 4);
//隨機(jī)
int retIndex = randomDispatcher.random();
//根據(jù)隨機(jī)結(jié)果去執(zhí)行不同的方法
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;
}
- 剖析Java中的事件處理與異常處理機(jī)制
- Java添加事件監(jiān)聽的四種方法代碼實例
- java抓取鼠標(biāo)事件和鼠標(biāo)滾輪事件示例
- java開發(fā)gui教程之jframe監(jiān)聽窗體大小變化事件和jframe創(chuàng)建窗體
- java常見事件響應(yīng)方法實例匯總
- java基礎(chǔ)之標(biāo)簽、按鈕和按鈕事件簡介
- 為Java應(yīng)用程序添加退出事件響應(yīng)
- Java List雙擊事件實現(xiàn)方法
- javascrpt綁定事件之匿名函數(shù)無法解除綁定問題
- 經(jīng)常用到的JavasScript事件的翻譯
- Java事件處理機(jī)制(自定義事件)實例詳解
相關(guān)文章
Java中Vector、ArrayList、LinkedList的關(guān)系詳細(xì)解析
這篇文章主要介紹了Java中Vector、ArrayList、LinkedList的關(guān)系詳細(xì)解析,Vector和ArrayList底層均為Object數(shù)組,LinkedList底層是Node節(jié)點,Vector是線程安全(底層方法均添加synchronized),ArrayList、LinkedList是線程不安全(無鎖),需要的朋友可以參考下2023-11-11SpringBoot?@Value與@ConfigurationProperties二者有哪些區(qū)別
這篇文章主要介紹了SpringBoot?@Value與@ConfigurationProperties二者的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10在RedisTemplate中使用scan代替keys指令操作
這篇文章主要介紹了在RedisTemplate中使用scan代替keys指令操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11