Java权重随机算法,根据权重随机获取一个业务对象

时间:2019-11-19 20:01:42   收藏:0   阅读:432
//AdvertPushDTO为业务对象,getWeight()获取权重值 private AdvertPushDTO weightRamdom(List<AdvertPushDTO> 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; }

原文:https://blog.51cto.com/14410791/2451515

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!