File size: 1,679 Bytes
0284885 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package Case_demo3;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class Test3 {
public static void main(String[] args) {
/*
班级里面有5个学生
要求:
被点到的学生不会再被点到。
但是如果班级中所有的学生都点到了,需要重新开启第二轮点名。
*/
//1、定义集合
ArrayList<String> list1 = new ArrayList<>();
//2、添加数据
Collections.addAll(list1, "范闲", "范建", "范统", "杜子腾", "朱合泛",
"侯笼藤", "朱益群", "朱穆朗玛峰", "杜琦燕", "袁明媛", "李猜", "田密密");
//创建一个临时的集合,用来存已经被点到学生的名字
ArrayList<String> list2 = new ArrayList<>();
//外循环:表示轮数
for (int i = 0; i < 10; i++) {
System.out.println("=============第" + i + "轮点名开始了============");
//3、获取集合的长度
int count = list1.size();
//4、随机点名
Random r = new Random();
//内循环:每一轮中随机循环抽取的过程
for (int j = 0; j < count; j++) {
int index = r.nextInt(list1.size());
String name = list1.remove(index);
list2.add(name);
System.out.print(name + " ");
}
System.out.println();
//此时表示一轮点名结束
//list1 空了 list2 10个学生的名字
list1.addAll(list2);
list2.clear();
}
}
}
|