/**
* 分配人员数据
* @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. spring使用cache

    考虑两方面: i) 声明某些方法使用缓存(注解方式) ii) 配置Spring对Cache的支持. 一.基于注解的支持 一般我们常用的注解:@Cacheable和@CacheEvict. 1.1.@C ...

  2. 搭建git for windows服务器(100%可以成功)

    既然Git在Linux下面非常好用,为什么还要搭建git windows的服务器,因为不是所有的用户都需要在linux下面做开发,对吧,还有很多用户选择使用windows做开发. 看到很多网友尝试部分 ...

  3. CXF WebService整合SpringMVC的maven项目

    首先推荐博客:http://www.cnblogs.com/xdp-gacl/p/4259481.html   http://blog.csdn.net/hu_shengyang/article/de ...

  4. Android下读取logcat的信息

    有时我们需要在程序执行进程中遇到一些异常,需要收集一logcat的信息,android下就可以使用以下方法获取: private static String getLogcatInfo(){ Stri ...

  5. EF 保证线程内唯一 上下文的创建

    1.ef添加完这个对象,就会自动返回这个对象数据库的内容,比如下面这个表是自增ID 最后打印出来的ID  就是自增的结果 2.lambda 中怎么select * var userInfoList = ...

  6. maven编译报错 -source 1.5 中不支持 lambda 表达式

    在用maven编译项目是由于项目中用了jdk 1.8, 编译是报错  -source 1.5 中不支持 lambda 表达式,Google找到这篇解决方案,记录一下: 编译时报如下错误: [ERROR ...

  7. Unity Mono IDE Setting

    Mac: 修改快捷键 删除一整行 Delete Entire Line    Command+D Format Document   Shift+Command+F 在文件中查找 Fin in Fil ...

  8. DIY PIXHAWK APM等飞控用的PPM转接板

    需要的硬件 一块arduino pro mini(推荐这个,比较小,当然如果你没有USB转转口的烧写工具买个ardunio nano板也是不错的,直接用USB线连接电脑就可以,用nano板要注意.它的 ...

  9. C++之路进阶——codevs3333(高级打字机)

    3333 高级打字机  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master     题目描述 Description 早苗入手了最新的高级打字机.最新款自然有着与 ...

  10. chartControl绑定数据源

    private void BindChartControl(DataTable dataTable,ChartControl chartControl,int[] columnNO,ViewType ...