java平均分配算法
近期公司有一个业务,总共有n个核查员,需要核查总数为m的客户,如何将所有客户平均分配给核查员呢,不说多的了,上代码
public static <T> Map<String,List<T>> AverageUtils(List<String> ids,List<T> list){
if(list == null || ids==null || ids.size() == 0 ){
return Collections.emptyMap();
}
int aveIndex=0;
int aveNum=ids.size();
int totalNum=list.size();
Map<String,List<T>> mapList = new HashMap<>();
for (int indexNum = 0; indexNum < totalNum; indexNum++) {
T t=list.get(indexNum);
if(indexNum % aveNum == 0){
aveIndex=0;
}
String id=ids.get(aveIndex);
if(mapList.containsKey(id)){
List<T> tList= mapList.get(id);
tList.add(t);
}else {
List<T> tList=new ArrayList<>();
tList.add(t);
mapList.put(id,tList);
}
aveIndex++;
}
if(totalNum < aveNum){
for (int i = aveIndex; i < aveNum ; i++) {
String id=ids.get(i);
List<T> tList=new ArrayList<>();
mapList.put(id,tList);
}
}
return mapList;
}