java隨機事件分發(fā)器示例
以下需求:
20%的概率去執(zhí)行方法A,
1%的概率去執(zhí)行方法B,
29%的概率去執(zhí)行方法C,
50%的概率去執(zhí)行方法D
如果用if隨機數(shù)之類的語句去判斷的話,可能會寫的很亂,我寫了一個隨機分發(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);
//隨機
int retIndex = randomDispatcher.random();
//根據(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;
}
相關(guān)文章
Spring Cloud之服務監(jiān)控turbine的示例
這篇文章主要介紹了Spring Cloud之服務監(jiān)控turbine的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
SpringBoot之多環(huán)境打包與配置文件排除方式
這篇文章主要介紹了SpringBoot之多環(huán)境打包與配置文件排除方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04
Spring?@Cacheable注解類內(nèi)部調(diào)用失效的解決方案
這篇文章主要介紹了Spring?@Cacheable注解類內(nèi)部調(diào)用失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Spring?Boot中獲取request的三種方式及請求過程
這篇文章主要介紹了Spring?Boot當中獲取request的三種方式,包括請求過程流程分析及response常用API,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-03-03
Spring緩存注解@Cacheable @CacheEvit @CachePut使用介紹
Spring在3.1版本,就提供了一條基于注解的緩存策略,實際使用起來還是很絲滑的,本文將針對幾個常用的注解進行簡單的介紹說明,有需要的小伙伴可以嘗試一下2021-07-07

