自动点名器

班级里有N个学生,实现随机点名器

java 复制代码
package MyApi.a00test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class Test1 {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        Collections.addAll(list,"范闲","范建","范统","杜子腾","王俊凯");
   //随机点名
        //第一种
     /*   Random r=new Random();
        int index=r.nextInt(list.size());
        String name= list.get(index);
        System.out.println(name);*/
        //第二种
        Collections.shuffle(list);
        String name=list.get(0);
        System.out.println(name);
    }
}

班级里面有N个学生

要求:70%的概率随机到男生,30%的概率随机到女生

java 复制代码
package MyApi.a00test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class Test2 {
    public static void main(String[] args) {
        ArrayList<Integer> list=new ArrayList<>();
        Collections.addAll(list,1,1,1,1,1,1,1);
        Collections.addAll(list,0,0,0);
        Collections.shuffle(list);
        Random r=new Random();
        int index = r.nextInt(list.size());
        Integer number = list.get(index);
        System.out.println(number);
       ArrayList<String>  boylist=new ArrayList<>();
        ArrayList<String>  girllist=new ArrayList<>();
    Collections.addAll(boylist,"王俊凯","王源","易烊千玺","夏之光","黄俊捷","肖战","王一博");
    Collections.addAll(girllist,"杨幂","迪丽热巴","娜扎");
    if(number==1){
        int boyindex = r.nextInt(boylist.size());
        String boyname = boylist.get(boyindex);
        System.out.println(boyname);
    }
    else {
        int girlindex = r.nextInt(girllist.size());
        String girlname= boylist.get(girlindex);
        System.out.println(girlname);
    }
    }
}

要求:

被点到的学生不会在被点到,但是如果班级中所有的学生都点完了,需要重新开启第二轮点名

java 复制代码
package MyApi.a00test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class Test3 {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        Collections.addAll(list,"王俊凯","王源","易烊千玺","夏之光","黄俊捷","肖战","王一博","杨幂","迪丽热巴","娜扎");
       //创建一个临时的集合,用来存储已经被点到名字的学生
        ArrayList<String> list2=new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            int count= list.size();
            Random r=new Random();
            for (int j = 0; j < count; i++) {
                int index = r.nextInt(list.size());
       /* String name = list.get(index);
        list.remove(name);*/
                String name = list.remove(index);
                list2.add(name);
                System.out.println(name);
            }
            //此时表示一轮集合已经结束
            list.addAll(list2);
            list2.clear();
        }
    }
}
相关推荐
醉城夜风~13 小时前
(超详细)C++ STL list容器详解:从使用方法到双向链表底层原理全面解析
c++·windows
凤山老林14 小时前
在 Apple 芯片的 Mac 上通过 VMware Fusion 使用 Windows 11
windows·macos·vmware·虚拟机
不弃君14 小时前
在 Windows 上用 MinGW 搭建 lwIP 调试环境:方法与踩坑实录
windows·网络协议·tcp/ip·嵌入式·mingw·lwip
ITHAOGE1515 小时前
下载 | Win11 24H2 正式版更新!(系统ISO映像、多合一版本、26100.8973、Windows 11)
windows·科技·微软·电脑
lzhdim19 小时前
C# 通过 Windows API 实现进程内存读写操作
开发语言·windows·c#
CIAS21 小时前
Windows powershell下实现空间释放
windows
AxureMost21 小时前
NeeView图像查看
windows
赵广陆1 天前
Model I/O进阶
windows
问商十三载1 天前
RAG 检索效果差怎么排查?2026 五层诊断法完整指南
开发语言·人工智能·windows·python·算法
Zguigo1 天前
第25-26讲:计算机操作系统存储管理——分页机制、页表与快表(TLB)
linux·windows·笔记