直接上代码,不啰嗦,复制可直接用
@Test
public void test111() {
//分配承接人
List<String> nameList = new ArrayList<>();
nameList.add("张三");
nameList.add("王五");
nameList.add("赵六");
nameList.add("李四");
//打乱list顺序,这样避免余数每次都分配到第一个人上面
Collections.shuffle(nameList);
//待分配人员
List<String> clientList = new ArrayList<>();
clientList.add("客户1");
clientList.add("客户2");
clientList.add("客户3");
clientList.add("客户4");
clientList.add("客户5");
clientList.add("客户6");
clientList.add("客户7");
clientList.add("客户8");
clientList.add("客户9");
// clientList.add("客户10");
// clientList.add("客户11");
// clientList.add("客户12");
// clientList.add("客户13");
// clientList.add("客户14");
// clientList.add("客户15");
// clientList.add("客户16");
//总客户数
Integer clientCount = clientList.size();
//总分配人数
Integer userCount = nameList.size();
//余数
Integer remainderCount = clientCount % userCount;
//每个人分配数
Integer divideCount = clientCount / userCount;
System.out.println("总客户数:" + clientCount + " 总销售数:" + userCount + " 余数:" + remainderCount + " 除数:" + divideCount);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < userCount; i++) {
for (int j = 0; j <= divideCount; j++) {
sb.setLength(0);
if (userCount * (j) + i <= clientList.size() - 1) {
sb.append(nameList.get(i)).append(clientList.get(userCount * (j) + i));
System.out.println(sb.toString());
}
}
}
}
文章对https://blog.youkuaiyun.com/qq_44729754/article/details/108712747进行修改而得。
如有疑问还请各位大佬指点,谢谢!