根据权重挑选通道的简单算法
当存在一批通道,根据权重,选择哪个通道去使用的简单算法。
利用随机数,数据区间,来获取通道。
通道权重越大,单位时间内使用该通道的概率会大一些。
//利用了一个权重区间的比例问题,抓取随机数的可能性,来体现权重思想
public static void main(String[] args) {
//定义三个通道的权重,按随机数选拔使用哪个通道。
//A 10 B 70 C 30
//从数据库查询出list集合
ChannelD A=new ChannelD("A",10);
ChannelD B=new ChannelD("B",70);
ChannelD C=new ChannelD("C",30);
List<ChannelD> channels=new ArrayList<OrderChannelServiceImpl.ChannelD>();
channels.add(A);
channels.add(B);
channels.add(C);
Map<Integer,String> map=new HashMap<Integer, String>();
Integer sum=0;//记录权重之和
for (ChannelD channel : channels) {
sum+=channel.getWeight();
map.put(sum,channel.getName());
}
Set<Integer> set=map.keySet();
for (Integer integer : set) {
Random r &