您的位置:首页 > 编程语言 > Java开发

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

2015-01-15 19:23 477 查看
注意:标的名单文件要写在与包名同一级别的目录下,记载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();
			}
		}
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: