Java权重随机算法,根据权重随机获取一个业务对象-创新互联

//AdvertPushDTO为业务对象,getWeight()获取权重值
private AdvertPushDTO weightRamdom(List list){
    int weightSum = 0;
    for (AdvertPushDTO dto : list) {
        weightSum += dto.getWeight();
    }
    if (weightSum <= 0) {
        System.err.println("错误: weightSum=" + weightSum);
        return null;
    }
    Integer n = new Random().nextInt(weightSum); // n的值为 [0, weightSum)
    Integer m = 0;
    for (AdvertPushDTO dto : list) {
        if (m <= n && n < m + dto.getWeight()) {
                return dto; //返回结果
        }
        m += dto.getWeight();
    }
    return null;
}

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

创新互联建站专注于企业网络营销推广、网站重做改版、松北网站定制设计、自适应品牌网站建设、HTML5商城系统网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为松北等各大城市提供网站开发制作服务。
本文标题:Java权重随机算法,根据权重随机获取一个业务对象-创新互联
标题URL:http://ybzwz.com/article/ccsdhe.html