美文网首页
Java权重算法

Java权重算法

作者: 茶瓯 | 来源:发表于2018-04-26 19:43 被阅读0次
    private T randomKey(List<T> list,Random random){
       //按照权重排序
        Collections.sort(list,new Comparator<T>() {
             @Override
             public int compare(T o1, T o2) {
                if(o1.getWeight()<o2.getWeight()){
                   return -1;
                 }else if(o1.getWeight()>o2.getWeight()){
                   return 1;
                 }
                 return 0;
            }
         });
       int sum = 0;
       for(T object:list){
           sum += object.getWeight();
        }
        int randomNumber = random.nextInt(sum);
        T target = null;
        for(T object:list){
             randomNumber -= object.getWeight();
            if(randomNumber <=0){
              target = object;
              break;
            }
        }
        return target;
    }

    相关文章

      网友评论

          本文标题:Java权重算法

          本文链接:https://www.haomeiwen.com/subject/syimlftx.html