文章目录

  • 1,分组代码介绍
  • 2,demo
  • 3,控制台打印

1,分组代码介绍

有时候我们会经常遇到分组的问题,然后考虑到各种的因素就会导致分组不公平,今天简单的用一个java代码解决分组随机且公平的问题。

demo中有两个方法,第一个方法,读取本地txt文件,文件中存放我们需要分组的人员,将我们按行读取到的人员,通过分隔符分割,然后存到列表中,并返回列表。第二个方法,以列表为参数,创建一个新列表,通过随机产生列表的索引,然后通过索引获取数据,判断数据是否在新列表中,不在就插入,并根据索引移除在参数列表的此数据。最后并将分组的小组名单以文件的形式进行保存。

输入名单为

随机分组的名单为

2,demo

package io;import java.io.*;
import java.util.*;/*** project_name: JavaDemo* filename:  GroupDemo* IDE:   IntelliJ IDEA* author: ganxiang* CreateDate:2020-07-19 17:20*/
public class GroupDemo {//1,将txt中的数据存到list中private List<String> readLocalTxt() throws Exception {String path="D:\\StudyDemo\\IDEA\\JavaDemo\\io\\read\\information.txt";InputStreamReader reader =new InputStreamReader(new FileInputStream(path));BufferedReader br=new BufferedReader(reader);String s;List<String> stringList =new ArrayList<>();while ((s=br.readLine())!=null){String[] tmp =s.split(",");
//            System.out.println(s);stringList.addAll(Arrays.asList(tmp));}br.close();reader.close();
//        System.out.println(stringList.toString());return stringList;}//2,对list中的数据进行无重复的随机取出private void printRandom(int n,List<String> list) throws Exception {String path="D:\\StudyDemo\\IDEA\\JavaDemo\\io\\read\\group.txt";OutputStreamWriter writer =new OutputStreamWriter(new FileOutputStream(path));BufferedWriter bw=new BufferedWriter(writer);int m=list.size()/n;for (int i = 1; i <= m; i++) {List<String> stringList =new ArrayList<>();for (int j = 1; j <=n ; ) {int index = (int) (Math.random()* list.size());if (!stringList.contains(list.get(index))) {stringList.add(list.get(index));list.remove(list.get(index));j++;}}System.out.println("第"+i+"小组的成员为:"+stringList.toString());
//            System.out.println(list.toString());bw.write("第"+i+"小组的成员为:"+stringList.toString().replace("["," ").replace("]"," ")+"\n");stringList.clear();}bw.close();}public static void main(String[] args) throws Exception {//        System.out.println(new GroupDemo().readLocalTxt());new GroupDemo().printRandom(6,new GroupDemo().readLocalTxt());}}

3,控制台打印


希望这个demo对感兴趣的朋友有所帮助,同时呢都看到这儿啦,点赞再走呗

java实现根据名单进行随机的小组分组。相关推荐

  1. python随机分组的思路_「Python」每日一练:学生学习小组分组程序

    编程题 学习小组分组程序:某课程共分4个小组,现有12名学生,要求随机分配到各组中.要求每组有且只能有3名学生. 编程要求:(1)要求使用嵌套列表保存数据:(2)要求导入随机数模块 思路分析 (1)首 ...

  2. Java编程的逻辑 (34) - 随机

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  3. js随机选学员。从以下学员名单中随机选出4个学员。

    要求从以下数组的学员名单中随机选出4个学员: var arr = ["鹿晗","王俊凯","蔡徐坤","彭于晏",&qu ...

  4. java代码:双色球号随机生成(极其简洁!)

    https://blog.csdn.net/qq_40677004/article/details/79699270 原 java代码:双色球号随机生成(极其简洁!) 2018年03月26日 15:5 ...

  5. JAVA打印指定长度的随机英文字母(小写)

    JAVA打印指定长度的随机英文字母(小写) 这里要用到一个生成随机数的方法Math.random() 关于Math.random() 它是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 do ...

  6. 【Java】基于JSON-Schema生成随机JSON的解决方案

    一.需求 1.给出特定格式json-schema,生成随机json串 2.json串,目录结构按json-schema定义 3.使用java开发语言 4.不需要提供页面,能输出随机json串即可(控制 ...

  7. 随机不重复:从以下学员名单中随机选出4个学员:var arr = [“鹿晗“,“王俊凯“,“蔡徐坤“,“彭于晏“,“周杰伦“,“刘德华“,“赵本山“];注意:不要有重复的学员

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  8. python学习小组分组程序_【Python】每日一练:学生学习小组分组程序

    编程题 学习小组分组程序:某课程共分4个小组,现有12名学生,要求随机分配到各组中.要求每组有且只能有3名学生. 编程要求:(1)要求使用嵌套列表保存数据:(2)要求导入随机数模块 思路分析 (1)首 ...

  9. mysql随机取出每个分组前2条记录

    mysql随机取出每个分组前2条记录 SELECT a.* FROMt_notary_business AS a,(SELECT GROUP_CONCAT(id order by rand()) AS ...

最新文章

  1. C++开源代码项目汇总
  2. 数据库迁移用到的命令
  3. 【git学习】git管理本地项目
  4. vue 组件监听页面切换_vue项目如何监听窗口变化,达到页面自适应?
  5. 计算机安全知识课堂导入设计,“计算机安全与防护教学设计”教学设计.doc
  6. 【2011-6】【奇数】
  7. angularjs 表单验证 和 页面初始化闪烁
  8. mysql 数据增量备份_MySQL数据库之mysql全量备份、增量备份实现方法
  9. 怎么配置java ee_如何配置Java EE Eclipse+Tomcat开发环境
  10. Web应用开发平台 OpenJWeb
  11. 2022.3.6总结非线性系统线性化方法,第五章
  12. 计算机操作基础知识点总结
  13. EUI插件服务器负载显示不兼容,EUI - 魔兽世界最贴心的插件
  14. 推荐一款好用的免费云服务器
  15. Linux下新增磁盘
  16. 使用TestCafe进行UI测试
  17. Perl笔记:08、用正则表达式处理文…
  18. 爬虫第六式:链家房源爬取
  19. 弘辽科技:淘宝收藏加购在哪里看?如何提升收藏加购数量?
  20. In me the tiger sniffs the rose.

热门文章

  1. YouCompleteMe(YCM)安装时遇到的问题(能遇到的几乎都遇到了)
  2. AUTOCAD学习笔记2:样板文件的区分
  3. javaMail学习(二)——邮箱客户端Foxmail的使用
  4. [Windows]_[初级]_[使用7z命令行工具进行打包备份]
  5. Kali-加密文档Office破解-hashcat(字典)
  6. XILINX Zynq UltraScale+ MPSoC 在 4K 视频图像处理和会议系统的应用
  7. GRE写作满分:模仿范文
  8. 利用cad计算型材的弹性模量_(整理)CAE常用材料弹性模量及泊松比摩擦系数.
  9. C语言怎么进行编程大型项目,如何对一个大的项目进行模块化编程
  10. 想不想知道识别动物的方法有哪些