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


    }
}