分组算法

需求:根据每组多少人来进行分组,人数少于每组人数时,只分一组;

分组时,最后一个组的人数<=每组人数的一半时,取消该组,将该组人数分配到其他组。

lg:26人的集合,每组4人,分6组,余2个人,这个2个人分到其他组里去;

27人的集合,每组4人,分7组,最后1组3人

代码实现如下:

public class test {

public static List> test(List list, Integer n) {//n代表每组多少人

// 求余数

int yushu = list.size() % n;

// 求分组数

int count0 = list.size() / n;

boolean flag = false;

if(yushu<=n/2){

flag=true;

}

List> data = new ArrayList>();

// 获取多余list

List sub = new ArrayList(list.subList(list.size() - yushu , list.size()));

// 遍历list到余数前

for (int i = 0; i < count0+1; i++) {

List ls = null;

if(flag){

if(i==count0){

break;

}

ls = new ArrayList(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(list.subList(i * n, endex));

}

data.add(ls);

}

return data;

}

public static void main(String[] args) {

List list = new ArrayList();

for (int i = 0; i < 5; i++) {

list.add(i + "");

}

List> test = test(list, 5);

System.out.println("result:" + test);

}

}

java实现用户分组,java实现分组算法,根据每组多少人来进行分组相关推荐

  1. es elasticsearch 几种常见查询场景 二次分组 java读取es的查询json文件

    大家好,我是烤鸭: es中几种常见的查询场景,使用java读取es的json文件进行查询. es 中文使用手册. https://www.elastic.co/guide/cn/elasticsear ...

  2. Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系 java实现基于用户的协同过滤推荐算法 源代码下载 算法实现 Spring+Struts+Hibernate(SSH)开发框架

    Java+Jsp+Mysql实现简单在线图书推荐系统 个性化图书推荐系统(基于用户的协同过滤推荐算法) 一.项目简介 1.开发工具和实现技术 MyEclipse10,jdk1.7,mysql5.5,t ...

  3. Java stream 处理分组后[升降序key]取每组最大

    Java stream 处理分组后[升降序key]取每组最大 一. 需求 二. 整活 git仓库直达 如何让同事看不懂你写的代码 然后觉得你非常牛逼 这里用到了stream()与Lambda 需要有点 ...

  4. java 用户协同过滤算法_基于用户的协同过滤推荐算法java实现(UserCF)

    UserCF的核心思想即为根据用户数据模拟向量相似度,我们根据这个相似度,来找出指定用户的相似用户,然后将相似用户买过的而指定用户没有买的东西推荐给指定用户,推荐度的计算也是结合了相似用户与指定用户的 ...

  5. 基于用户的协同过滤推荐算法java实现(UserCF)

    UserCF的核心思想即为根据用户数据模拟向量相似度,我们根据这个相似度,来找出指定用户的相似用户,然后将相似用户买过的而指定用户没有买的东西推荐给指定用户,推荐度的计算也是结合了相似用户与指定用户的 ...

  6. java在线编程题_阿里笔试题(2017在线编程题)-- 数串分组 --Java实现

    看到有人写了阿里的面试题,心里痒痒,好久 没搞过这些了,写着实现一下 题目 2017年3月阿里在线编程题(实习内推) 给定一串数字 判断是否存在这三个元素,它们将数字串分为四个子串,其中每个子串的数字 ...

  7. 阿里笔试题(2017在线编程题)-- 数串分组 --Java实现

    看到有人写了阿里的面试题,心里痒痒,好久 没搞过这些了,写着实现一下 题目 2017年3月阿里在线编程题(实习内推) 给定一串数字 判断是否存在这三个元素,它们将数字串分为四个子串,其中每个子串的数字 ...

  8. Java高级用户指南-核心Java

    原文地址:https://dzone.com/refcardz/core-java 本文采用Google翻译,有些地方数据类型被翻译成了中文,建议中英文对照一起看. 第1节 关于Core Java 此 ...

  9. Java算法:华为机试算法(下),华为算法Java版,牛客网华为算法73~108题

    接上篇:Java算法:华为机试算法(中),华为算法Java版,牛客网华为算法55~72题   HJ73 计算日期到天数转换 计算日期到天数转换 题目描述 根据输入的日期,计算是这一年的第几天.. 测试 ...

  10. 基于Java的(SM2_SM3_SM4)国密算法, 加密解密工具类及测试demo

    编写本文的同时借鉴了多位同学写的demo, 最后发现这位同学写的最详细, 放上该作者的链接, 原版链接: https://download.csdn.net/download/ererfei/9474 ...

最新文章

  1. 共享程序集和强命名程序集(3):强命名程序集的一些作用
  2. QCon讲师对对碰——洪小军采访梁宇鹏:就是爱Golang
  3. 单机结构 集群结构 分布式结构
  4. 2014-3-9 星期天[周末计划实施总结]
  5. 逐帧动画和补间动画的使用场景(二)
  6. Android系统,动态找出一个包下所有的类
  7. Linux内核模块的概念和基本的编程方法
  8. 【Qt】Qt5.9连接MySQl5.7(亲自测试成功)
  9. 俄罗斯方块之四 运动块的绘制实现
  10. 算法 --- 删除数组中重复项
  11. html中显示数据库中的一条数据,如何使用html表显示数据库中的数据
  12. 原生Android 侧滑菜单实践(部分)
  13. 牛客网 [编程题]数字和为sum的方法数
  14. 【视频】文本挖掘:主题模型(LDA)及R语言实现分析游记数据
  15. 订阅github release(官方+IFTTT)
  16. TCPIP详解Protocol 读书笔记(一) TCP协议概述
  17. android超大屏触摸设备,世界上最大的安卓Android平板电脑具有98英寸的屏幕
  18. Excel2013向被粘贴区域的非空单元格内粘贴数据
  19. java实现空心三角形
  20. SEGGER Embedded Studio 4.22 入门之:配合cubemx 快速建立ES工程

热门文章

  1. 3.性能之巅 洞悉系统、企业与云计算 --- 操作系统
  2. 12.看板方法---度量和管理报告
  3. 3.算法通关面试 --- 哈希表和集合
  4. 9.UNIX 环境高级编程--进程关系
  5. 9.运输层(3)---TCP
  6. 12. 程序扩展性(高级特性)
  7. 支付宝返回参数说明(转)
  8. Java HashSet和ArrayList的查找Contains()时间复杂度
  9. 进击的雨燕------------错误处理
  10. oracle 大批量数据更新