赞
踩
先说场景: 有一批客户要分配到销售手里进行维护,一个客户的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); } } }
可以看出来分配的顺序是乱的,但肯定的是每个销售每一轮都可以分配到,不会造成不平均的情况,最后的余下的客户就要看运气了,也可以做成按顺序分配,就把随机数替换成0就可以。这样最后余下的客户,就要按照销售的排序分配了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。