JAva割り当てアルゴリズム
2281 ワード
/*
*
*/
public Map> allotOfRandom(List users,List tasks){
Map> allot=new ConcurrentHashMap>(); //
if(users!=null&&users.size()>0&&tasks!=null&&tasks.size()>0){
for(int i=0;i list=allot.get(users.get(r_user));
list.add(tasks.get(i));
allot.put(users.get(r_user), list);
}else{
List list=new ArrayList();
list.add(tasks.get(i));
allot.put(users.get(r_user), list);
}
}
}
return allot;
}
/*
*
*/
public Map> allotOfAverage(List users,List tasks){
Map> allot=new ConcurrentHashMap>(); //
if(users!=null&&users.size()>0&&tasks!=null&&tasks.size()>0){
for(int i=0;i list=allot.get(users.get(j));
list.add(tasks.get(i));
allot.put(users.get(j), list);
}else{
List list=new ArrayList();
list.add(tasks.get(i));
allot.put(users.get(j), list);
}
}
}
return allot;
}
/*
*
*/
public Map> allotOfProportion(Map users,List tasks){
Map> allot=new ConcurrentHashMap>(); //
if(users!=null&&users.size()>0&&tasks!=null&&tasks.size()>0){
int a=0;//
for(Entry entry:users.entrySet()){
a+=Integer.parseInt(entry.getValue());
}
int start=0,end=0;// ,
if(a>0){
for(Entry entry:users.entrySet()){
List allotTask=new ArrayList();
end+=Integer.parseInt(entry.getValue());//
for(;start