自动点名器

班级里有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();
        }
    }
}
相关推荐
比花花解语4 分钟前
Kafka在Windows系统使用delete命令删除Topic时出现的问题
windows·分布式·kafka
rainmanqqst40 分钟前
耀世16Pro鼠标卡顿
windows
早起的年轻人2 小时前
Java List 自定义对象排序 Java 8 及以上版本使用 Stream API
java·windows·list
专注VB编程开发20年13 小时前
除了 EasyXLS,加载和显示.xlsx 格式的excel表格,并支持单元格背景色、边框线颜色和粗细等格式化特性
c++·windows·excel·mfc·xlsx
Natsuagin14 小时前
轻松美化双系统启动界面与同步时间设置(Windows + Ubuntu)
linux·windows·ubuntu·grub
xing.yu.CTF15 小时前
Web入侵实战分析-常见web攻击类应急处置实验2
运维·服务器·windows·web安全·apache·php漏洞·phpstudy后门漏洞
ceffans17 小时前
PDF文档中文本解析
c++·windows·pdf
SummerGao.17 小时前
Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory
c++·windows·qt·cmake·visual studio·setup factory
Igallta_81362219 小时前
【小游戏】C++控制台版本俄罗斯轮盘赌
c语言·开发语言·c++·windows·游戏·游戏程序
wave_sky20 小时前
Visual Studio中打开多个项目
ide·windows·visual studio