java实现根据名单进行随机的小组分组。
文章目录
- 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,控制台打印
编程题 学习小组分组程序:某课程共分4个小组,现有12名学生,要求随机分配到各组中.要求每组有且只能有3名学生. 编程要求:(1)要求使用嵌套列表保存数据:(2)要求导入随机数模块 思路分析 (1)首 ... 本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ... 要求从以下数组的学员名单中随机选出4个学员: var arr = ["鹿晗","王俊凯","蔡徐坤","彭于晏",&qu ... https://blog.csdn.net/qq_40677004/article/details/79699270 原 java代码:双色球号随机生成(极其简洁!) 2018年03月26日 15:5 ... JAVA打印指定长度的随机英文字母(小写) 这里要用到一个生成随机数的方法Math.random() 关于Math.random() 它是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 do ... 一.需求 1.给出特定格式json-schema,生成随机json串 2.json串,目录结构按json-schema定义 3.使用java开发语言 4.不需要提供页面,能输出随机json串即可(控制 ... <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ... 编程题 学习小组分组程序:某课程共分4个小组,现有12名学生,要求随机分配到各组中.要求每组有且只能有3名学生. 编程要求:(1)要求使用嵌套列表保存数据:(2)要求导入随机数模块 思路分析 (1)首 ... mysql随机取出每个分组前2条记录 SELECT a.* FROMt_notary_business AS a,(SELECT GROUP_CONCAT(id order by rand()) AS ...
希望这个demo对感兴趣的朋友有所帮助,同时呢都看到这儿啦,点赞再走呗
java实现根据名单进行随机的小组分组。相关推荐
最新文章
热门文章