首页 > 代码库 > java编程:给你一个班级的名单,随机分成6个组的问题解决办法

java编程:给你一个班级的名单,随机分成6个组的问题解决办法

注意:标的名单文件要写在与包名同一级别的目录下,记载src上右击,点新建文件file,把名单复制到此文件中,程序就可以依据一些策略访问这个名单的内容

ArrayList是List(列表),数据是有序的,可以有重复元素
HashSet是Set(集合),数据没有顺序,没有重复元素,元素搜索速度快
package 随机分组;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;

public class Test {

	public static void main(String[] args) {
		List<String> zu=new ArrayList<String>();
		Scanner sc = new Scanner(Test.class.getClassLoader().getResourceAsStream("table.txt"));
		
		while(sc.hasNextLine())
		{
			String eachOne = sc.nextLine();
			if(eachOne!=null && eachOne.trim().length()>0)
			{
				zu.add(eachOne);//加到List集合中
				//System.out.print(eachOne+"\t");
			}
		}
		//list有序可以重复
		//set 无序不可以重复(此题推荐用这个,因为一旦你的表里面记录了许多个同名字的人它就可以给你忽略掉重复的名字,但是本来就是同名的人另外说)
		Set<String> s1 = new HashSet<String>();
		//List<String> s1=new ArrayList<String>();
		int count=0;//
		while(true)
		{
			if(zu.size()==0)
			{
				break;
			}
			int index=(int)(Math.random()*zu.size());
			String n=zu.get(index);
			if(s1.add(n))//把对应的字符串(名字)加入到set对象里面
			{
				System.out.print(n+"\t");
				zu.remove(n);//
				count++;
				if(count%7==0)//控制换行
					System.out.println();
			}
		}
	}
}


java编程:给你一个班级的名单,随机分成6个组的问题解决办法