#打卡学习##JAVA#集合 线程 sleep 随机数 小练习

练习:编写一个抽取学员回答问题的程序,要求倒数三秒后输出被抽中的学员姓名
i. 采用数组存储6个学员姓名
ii. 生成0-5之间的随机数,确定被抽中的学员
iii. 在屏幕每隔一秒,依次输出3,2,1,然后输出学员姓名

我用了5个类吧 比较粗糙 可以更多优化。。小练习

//主类  运行类
import java.util.HashMap;
import java.util.Map;
import java.util.Random;

public class Sleep {
	//分为 动物学员属性类   动物学员集合类  随机抽取类
//练习 编写一个抽取学员回答问题的程序,要求倒数三秒后输出被抽中的学员姓名				
	public static void main(String[] args) {
		System.out.println("请输入1开启抽取学员回答问题的程序");
		Cadet c1=new Cadet();
		c1.start();
	}							
}
//线程
class Cadet extends Thread{
	
	public Cadet(Cadet c2) {
	}
	public Cadet() {
	}
	public void run() {			
		for(int i=0;i<30;++i) {
			Random r = new Random();		   		           
			int a = r.nextInt(6);						
			if(a==AnimalAggregate.map.get(a).gid){	
				for(int i1 =1;i1<4;i1++) {
					 try {
			               Thread.sleep(1000);
			               System.out.print("   睡眠倒数"+i1+"秒!\n");
			               System.out.println();			               
			           } catch (InterruptedException e) {
			               e.printStackTrace();			               
			           }				
			}
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {					
					e.printStackTrace();
				}
				System.out.print("随机数是"+a+"的同学:");
				Look.look(a);
				System.out.println("出来答题!");	            			
		}
		
	}
}
}
//动物类
public class Animal {
	int gid;
	String name;
	
	public Animal( String name) {
		super();
		this.name = name;
		
	}
	
	
	public Animal(int gid, String name) {
		super();
		this.gid = gid;
		this.name = name;
		
	}




	public Animal() {
		super();
	}


	public int getGid() {
		return gid;
	}

	public void setGid(int gid) {
		this.gid = gid;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}	

	
}
//集合类
import java.util.HashMap;
import java.util.Map;
public class AnimalAggregate {
	public static Map<Integer,Animal>map=new HashMap<>();
	static {
		Animal am =new Animal(0,"橘猫");
		Animal am1 =new Animal(1,"柴犬");
		Animal am2 =new Animal(2,"英短");
		Animal am3 =new Animal(3,"美短");
		Animal am4 =new Animal(4,"土猫");
		Animal am5 =new Animal(5,"布偶");
		map.put(am.gid,am);
		map.put(am1.gid,am1);
		map.put(am2.gid,am2);
		map.put(am3.gid,am3);
		map.put(am4.gid,am4);
		map.put(am5.gid,am5);
	}
}
//随机抽取的数是不是对应的类
public class Look {
public static void look(Integer a) {
		
		for(int i=0;i<5;i++) {
		if(a==AnimalAggregate.map.get(a).gid) {
			System.out.println(AnimalAggregate.map.get(a).name);
			break;
		}
		}
	}
}

qwq加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值