当前位置:   article > 正文

Java 实现两个List数据平均随机分配_java 两个list 随机分配

java 两个list 随机分配

先说场景: 有一批客户要分配到销售手里进行维护,一个客户的list集合,一个销售的list集合,要让销售分到的客户一样多,除非分配到最后客户数量不够每一个销售了,才进行随机分配,销售之间的客户数量只有一个客户数量之差。

纯随机分配,不按照顺序,但保证数量是平均的。

 public static void main(String[] args) {
        List<String> staffList = new ArrayList<>();// 销售列表
        staffList.add("张三");
        staffList.add("李四");
        staffList.add("王五");

        List<String> usertList = new ArrayList<>(); // 客户列表
        usertList.add("客户1");
        usertList.add("客户2");
        usertList.add("客户3");
        usertList.add("客户4");
        usertList.add("客户5");
        usertList.add("客户6");
        usertList.add("客户7");
        usertList.add("客户8");
        
        int staffCount = staffList.size(); //销售数量
        int userCount = usertList.size();//客户数量
        Random random = new Random(); // 随机数
        
        int staffCount1 = staffCount; // 定义一个销售固定数量
        List<String> staffList1 = new ArrayList<>();
        staffList1.addAll(staffList);// 定义一个销售固定值

        for (int i = 0; i < userCount; i++) {
            int nextInt = random.nextInt(staffCount1);
            System.out.println(usertList.get(i) +"--->归属销售为:"+staffList.get(nextInt));
            staffCount1--;
            staffList.remove(nextInt);
            if (staffCount1 == 0) {
                staffCount1 = staffCount;
                staffList.addAll(staffList1);
            }
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

在这里插入图片描述

可以看出来分配的顺序是乱的,但肯定的是每个销售每一轮都可以分配到,不会造成不平均的情况,最后的余下的客户就要看运气了,也可以做成按顺序分配,就把随机数替换成0就可以。这样最后余下的客户,就要按照销售的排序分配了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/289257?site
推荐阅读
相关标签
  

闽ICP备14008679号