Java人员随机分组
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class RandomSelect {
public static void main(String[] args) {
String[] names = {"杨","刘","赵","范","张","李","宋","周","郭","任",
"韩","张","张","田","贾","何","袁","姬","邹","蔻","杨","杨"};
List<List<String>> gl = getGroup(names, 3); //分3组
System.out.println("总人数:"+names.length+"人");
if(gl != null) {
for (List<String> l : gl) {
System.out.println(l);
}
}
}
/**
* 获取随机数
*/
public static int getRandom(int i) {
Random r = new Random();
return r.nextInt(i);
}
/**
* 进行分组 els 需要进行分组的成员 groups 需要分成几组
*/
public static List<List<String>> getGroup(String[] els, int groups) {
// 判断验证
if (els.length < (groups * 2)) {
System.out.println("分组数过多! 最多只能分" + (els.length / 2) + "组");
return null;
}
if (groups == 1) {
System.out.println("分组数不能为1组");
return null;
}
// 数据源的list
List<String> list = new ArrayList<String>();
// 作为结果返回的list
List<List<String>> groupsList = new ArrayList<List<String>>();
// List<Map<String, String>> groupsList = new ArrayList<List<String>>();
// 往数据源里面添加数据
for (int i = 0; i < els.length; i++) {
list.add(els[i]);
}
// 随机打乱一下顺序
Collections.shuffle(list);
// 计算一下每组多少人
int peoples = els.length / groups;
// 分组开始
for (int i = 0; i < groups; i++) {
List<String> group = new ArrayList<String>();
for (int j = 0; j < peoples; j++) {
int random = getRandom(list.size());
group.add(list.get(random));
list.remove(random);
}
groupsList.add(group);
}
// 最后剩下的人再重新分配一遍
for (int i = 0; i < list.size(); i++) {
groupsList.get(i).add(list.get(i));
}
return groupsList;
}
}
Java人员随机分组相关推荐
- java随机动态分组_Java将一组数随机分组
试题:一个班40个学生,请把学生随机分成8组 既然是随机分组,必然用到随机数,其分组思路是: 用一个链表存储这组数,随机获取A中的元素下标,然后打印这个数,并从A中移除,直到A中全部为空 import ...
- java 8 集合分组_Java 8:按集合分组
java 8 集合分组 在继续阅读Venkat Subramaniam的" Java函数式编程 "时,我到达了介绍Stream#collect函数的那部分. 我们想收集一个人,按年 ...
- 11、16支足球队随机分组
编程题目: 11.将16支足球队随机分成四组: 科特迪瓦 阿根廷 澳大利亚 塞尔维亚 荷兰 尼日利亚 日本 美国 中国 新西兰 巴西 比利时 韩国 喀麦隆 洪都拉斯 意大利 示例代码: package ...
- 自动平衡男女比例的随机分组软件B2G使用教程,献给组织
操作演示视频二维码: 自动平衡男女比例的随机分组软件B2G APP(v1.0)上线 ,B2G随机分组软件交流群:489950969,@author by CYJ cyjlnk@foxmail.com ...
- java web随机抽取_java实现随机抽取奖品工具类
本文实例为大家分享了java实现随机抽取奖品工具类的具体代码,供大家参考,具体内容如下 随机抽取奖品 整体思路: 1.奖品集合 + 概率比例集合 2.将奖品按集合中的顺序概率计算成所占比例区间,放入比 ...
- 归约操作java8_使用Java 8进行分组,转换和归约
归约操作java8 1.简介 在上一篇文章中 ,我写了关于如何使用流和分组对对象集合进行分组的文章. 这很有用,但不涵盖特定的用例. 例如,有时我们不仅需要对事物进行分组,还需要将结果转换为更合适的对 ...
- 使用Java 8进行分组,转换和归约
1.简介 在上一篇文章中 ,我写了关于如何使用流和分组对对象集合进行分组的文章. 这很有用,但不涵盖特定的用例. 例如,有时我们不仅需要对事物进行分组,还需要将结果转换为更合适的对象. 在这篇文章中, ...
- c语言程序如何实现分组,c程序-实现随机分组.ppt
c程序-实现随机分组 题目: √ 对全班学生进行随机分组: 1.要求任意输入一组班级学生数据: 2.要求任意输入确定组数: 3.要求分组学生随机分配: 4.能够正确显示分组结果: 核心思路 通过按学生 ...
- java 正负随机_如何产生一个随机的[0, n)范围内的Short值
背景 最近在做一个Java的随机对象生成器.需要随机产生一些在[0, n)范围内的short值. 坑 很多人可能会说,这有什么难的,我刚学编程的时候就会了.然后给出下面代码. short value ...
最新文章
- 重温一遍数据结构之单链表(golang版)
- 开源作品ThinkJDBC—一行代码搞定数据库操作
- 前端基础知识整理汇总(上)
- Android 访问本地 HTML
- 富文本编辑器宽度自适应及取消自动保存功能
- 对于javaScript闭包,立即执行函数的用法的一些理解
- php面向对象之单表操作类
- Hadoop环境 IDE配置(在eclipse中安装hadoop-eclipse-plugin-2.7.3.jar插件)
- mysql group by cube_SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE
- 计算机网络作用范围网络分为,【填空题】从不同作用范围分类,计算机网络可以分为广域网、_______、_________、_________四种...
- 一款基于SpringCloudAlibaba从0到1手敲的商城项目mtg-shop
- 常见的各种字幕内容总结(字幕基础、字幕介绍、字幕种类及常见格式、SRT+ASS+LYC等等)
- 如何利用JDK8彻底弄懂UNIX时间戳与时区的概念!
- 会议及作用篇--项目管理(十六)
- 计算机图形学学习笔记(5.1)几何造型与样条
- 扇贝编程python学习笔记-基础篇4
- Unity 脚本中的几种等待方法
- mysql 5.7.21 winx64_mysql5.7.21 winx64安装配置图文分享
- 国内开源商城系统如何选型
- 【毕业季·进击的技术er】 什么是微信小程序,带你推开小程序的大门
热门文章
- PostgreSQL助力小微企业管理系统变革
- MFC Windows程序设计学习笔记--文件和串行化
- iphone4 快捷键整理
- Eclipse设置自动保存
- gitlab上创建新的分支并发布代码
- 最新论文笔记(+11):Privacy-Preserving Searchable Encryption Framework for Permissioned Blockchain Networks
- java建立英文停用词表_pyhanlp 停用词与用户自定义词典
- Android之Canvas画笔和画布
- 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代
- 深信服edr终端漏洞