/**
* 分配人员数据
* @param num 数据条数
* @param taskUs 人员数据
* @param isend 标记第一次循环
*/
private void distTaskNum(int num,List<TaskUserInfo> taskUs,boolean isend){
//是否被分配判断
int bakNum = num;
//循环次数
int forTnt =0;
if(Common.isListEmpty(taskUs)){
int numcurdis=0;
for(TaskUserInfo info : taskUs)
{
//分配条数为0标记并退出
if(num==0){
info.setEndPosition(Boolean.TRUE);
break;
}
forTnt=forTnt+1;
//寻找上一次结束位置
if(isend){
//结束位置判断 || 已被分配继续分配
if(info.isEndPosition() || bakNum != num){
num = num -1;
int numcur = info.getNumberCurrent()!=null?info.getNumberCurrent():0;
int numdis = info.getNumberDistribution()!=null?info.getNumberDistribution():0;
info.setEndPosition(Boolean.FALSE);
if(numcur<=numdis)
{
if(numcur==numdis){ //标记当前分配条数是否与分配条数相等
numcurdis=numcurdis+1;
continue;
}else{
info.setNumberCurrent(numcur+1);
}
//添加完递减
num = num -1;
}
}
}else{
int numcur =info.getNumberCurrent()!=null ? info.getNumberCurrent():0;
int numdis = info.getNumberDistribution()!=null ? info.getNumberDistribution():0;
if(numcur<=numdis)
{
if(numcur==numdis){//标记当前分配条数是否与分配条数相等
numcurdis=numcurdis+1;
continue;
}else{
info.setNumberCurrent(numcur+1);
}
//添加完递减
num = num -1;
}
}
//标记循环结束和分配条数为0 结束位置
if(num==0&&taskUs.size()==forTnt){
taskUs.get(0).setEndPosition(Boolean.TRUE);
}
}
//新增条数分配次数
if(taskUs.size()==numcurdis)
{
for(TaskUserInfo info : taskUs)
{
int numfre = info.getNumberFrequency()!=null?info.getNumberFrequency():0;
info.setNumberFrequency(numfre+1);
info.setNumberCurrent(0);
}
}
//根据条件递归方法
if(num>0){
distTaskNum(num,taskUs,false);
} }
}

java递归应用的更多相关文章

  1. Java递归列出目录下全部文件

    Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class hello{ public static void main(String ...

  2. Java 递归调用 recursive 给一个参数 返回一大堆

    需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...

  3. JAVA 递归实现从n个数中选取m个数的所有组合

    这周Java课程有个小作业:Java递归实现从n个数中选取m个数的所有组合 代码如下: //其中 n 取 1,2,3,4,5 五个数, m 取 3 package javaText; public c ...

  4. JAVA递归、非递归遍历二叉树(转)

    原文链接: JAVA递归.非递归遍历二叉树 import java.util.Stack; import java.util.HashMap; public class BinTree { priva ...

  5. 慎用Java递归调用

    总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...

  6. Java递归实现阶乘

    import java.util.Scanner; public class Factorial { public static void main(String[] args) { Scanner ...

  7. java递归删除目录下所有内容

    java递归删除目录下所有内容 private static boolean deleteDir(File dir) {if (dir.isDirectory()) {        String[] ...

  8. JAVA递归实现线索化二叉树

    JAVA递归实现线索化二叉树 基础理论 首先,二叉树递归遍历分为先序遍历.中序遍历和后序遍历. 先序遍历为:根节点+左子树+右子树 中序遍历为:左子树+根节点+右子树 后序遍历为:左子树+右子树+根节 ...

  9. 算法笔记_013:汉诺塔问题(Java递归法和非递归法)

    目录 1 问题描述 2 解决方案  2.1 递归法 2.2 非递归法 1 问题描述 Simulate the movement of the Towers of Hanoi Puzzle; Bonus ...

  10. Java递归输出指定路径下所有文件及文件夹

    package a.ab; import java.io.File; import java.io.IOException; public class AE { public static void ...

随机推荐

  1. win7 WindowsImageBackup 无法识别

    控制面板\所有控制面板项\备份和还原

  2. as3绕过策略文件给视频截图

    接上篇 http://www.cnblogs.com/DarkMaster/p/5973593.html 这篇同样是在老外博客上找到的,分享给大家,再次感叹老外牛逼啊. 原文地址:http://gam ...

  3. Vanishing point detection

    https://marcosnietoblog.wordpress.com/code/

  4. [转载]Ubuntu17.04(Zesty Zapus)路线图发布:2017年4月13日发布

    Canonical今天公布了Ubuntu 17.04(Zesty Zapus)操作系统的发布路线图,该版本于今年10月24日上线启动,toolchain已经上传且首个daily ISO镜像已经生成.面 ...

  5. javascript中的正则表达式学习

    一.前言 关于正则表达式自身的语法这里不做过多介绍(详情可参见http://www.php100.com/manual/unze.html),这里仅仅解释javascript中和正则表达式相关的几个方 ...

  6. django的分页

    一.分页器的函数封装 # 分页计算最小页和最大页 def page_list_return(total, current=1): ''' 分页,返回本次分页的最小页数和最大页数列表 :param to ...

  7. git commit 代码时提示: Warning: Your console font probably doesn‘t support Unicode.

    git 提交代码是会遇到以下问题, git commit 代码时提示: Warning: Your console font probably doesn‘t support Unicode. If ...

  8. gulp 安装 使用 和删除

    1.安装 全局安装: npm intstall gulp -g      (首先你得有node.js ,这个可以去node 官网下载个iso的镜像安装包,傻瓜式安装.自带npm) 安装在项目中: 首先 ...

  9. Dev统计选中行、如需其他数据源可留言

    Clipboard.Clear(); Dictionary<string, decimal> dtary = new Dictionary<string, decimal>() ...

  10. S3C2440上RTC时钟驱动开发实例讲解(转载)

    嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http:/ ...