java实现分组算法,根据每组多少人来进行分组
来源:互联网 发布:商场女装品牌推荐 知乎 编辑:程序博客网 时间:2024/04/24 22:53
分组算法
需求:根据每组多少人来进行分组,人数少于每组人数时,只分一组;
分组时,最后一个组的人数<=每组人数的一半时,取消该组,将该组人数分配到其他组。
lg:26人的集合,每组4人,分6组,余2个人,这个2个人分到其他组里去;
27人的集合,每组4人,分7组,最后1组3人
代码实现如下:
public class test {public static List<List<String>> test(List<String> list, Integer n) {//n代表每组多少人// 求余数int yushu = list.size() % n;// 求分组数int count0 = list.size() / n;boolean flag = false;if(yushu<=n/2){flag=true;}List<List<String>> data = new ArrayList<List<String>>();// 获取多余listList<String> sub = new ArrayList<String>(list.subList(list.size() - yushu , list.size()));// 遍历list到余数前for (int i = 0; i < count0+1; i++) {List<String> ls = null;if(flag){if(i==count0){break;}ls = new ArrayList<String>(list.subList(i * n, i * n + n));// 将余出的数据加入分组if (i < sub.size()) {ls.add(sub.get(i));}}else{int endex = i * n + n;if(endex>=list.size()){endex=list.size();}ls = new ArrayList<String>(list.subList(i * n, endex));}data.add(ls);}return data;}public static void main(String[] args) {List<String> list = new ArrayList<String>();for (int i = 0; i < 5; i++) {list.add(i + "");}List<List<String>> test = test(list, 5);System.out.println("result:" + test);}}
阅读全文
0 0
- java实现分组算法,根据每组多少人来进行分组
- ef根据年月进行分组
- java中list根据两个属性进行分组
- java实现分组最少重复算法
- Java集合分组算法
- 如何根据用户所在分组进行身份验证
- 字符串根据自定义长度进行分组
- java 实现 分组 函数
- Java 代码实现分组
- java 实现 分组 函数
- java实现分组
- Java对Collections进行分组
- sql分组查询每组的最大值
- select 分组 每组显示N条
- mysql 分组取得 每组记录数
- 分组取每组最大的值
- 对多数据进行分组排序后取每组第一条记录
- java 根据每个分组个数,分解数组.
- LightOJ
- PAT1002:1002. A+B for Polynomials 解题报告
- Tomcat实战-调优方案
- 使用eclipse构建现有的maven项目开发环境
- Sumset 递推 poj2299
- java实现分组算法,根据每组多少人来进行分组
- 机器学习入门-深度学习
- apk打包流程
- keras知识点笔记
- AC自动机
- Android 数据库(2)-----SQLite使用
- 深层次理解JNI中的GetArray<PrimitiveType>Elements()函数
- bashshell if read for while until 的使用
- 多因子模型之因子(信号)测试平台----计算因子值