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();
			}
		}
	}
}


  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝地反击T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值