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