java递归应用
/**
* 分配人员数据
* @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递归应用的更多相关文章
- Java递归列出目录下全部文件
Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class hello{ public static void main(String ...
- Java 递归调用 recursive 给一个参数 返回一大堆
需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...
- JAVA 递归实现从n个数中选取m个数的所有组合
这周Java课程有个小作业:Java递归实现从n个数中选取m个数的所有组合 代码如下: //其中 n 取 1,2,3,4,5 五个数, m 取 3 package javaText; public c ...
- JAVA递归、非递归遍历二叉树(转)
原文链接: JAVA递归.非递归遍历二叉树 import java.util.Stack; import java.util.HashMap; public class BinTree { priva ...
- 慎用Java递归调用
总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...
- Java递归实现阶乘
import java.util.Scanner; public class Factorial { public static void main(String[] args) { Scanner ...
- java递归删除目录下所有内容
java递归删除目录下所有内容 private static boolean deleteDir(File dir) {if (dir.isDirectory()) { String[] ...
- JAVA递归实现线索化二叉树
JAVA递归实现线索化二叉树 基础理论 首先,二叉树递归遍历分为先序遍历.中序遍历和后序遍历. 先序遍历为:根节点+左子树+右子树 中序遍历为:左子树+根节点+右子树 后序遍历为:左子树+右子树+根节 ...
- 算法笔记_013:汉诺塔问题(Java递归法和非递归法)
目录 1 问题描述 2 解决方案 2.1 递归法 2.2 非递归法 1 问题描述 Simulate the movement of the Towers of Hanoi Puzzle; Bonus ...
- Java递归输出指定路径下所有文件及文件夹
package a.ab; import java.io.File; import java.io.IOException; public class AE { public static void ...
随机推荐
- AngularJS基础知识1
一.angularJS简介 1.什么是 AngularJS? AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库.AngularJS是协助搭建单页面工程 ...
- 一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- Docker应用程序容器技术_转
转自:百度百科 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相 ...
- Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)
本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...
- C#异步方法的使用
from:http://www.myext.cn/csharp/a_6765.html 也许业内很多高不成低不就的程序员都会对一些知识点会有些迷惑,原因是平常工作用的少,所以也就决定了你对这个事物的了 ...
- Error : should use android:showAsAction when not using support library
我有一个ListActivity,然后一个menu/options.xml android:showAsAction报错: should use android:showAsAction when n ...
- (转载)(收藏)OceanBase深度解析
一.OceanBase不需要高可靠服务器和高端存储 OceanBase是关系型数据库,包含内核+OceanBase云平台(OCP).与传统关系型数据库相比,最大的不同点, 是OceanBase是分布式 ...
- Leetcode: Find Leaves of Binary Tree
Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all leaves ...
- [pyqt4]mark
sip SIP must be installed before building and using PyQt4 必须安装sip首先 https://riverbankcomputing.com/s ...
- $.ajx的用法
$.ajax({type:'post',//可选geturl:'action.php',//这里是接收数据的PHP程序data:'data='dsa'',//传给PHP的数据,多个参数用&连接 ...