自动点名器

班级里有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();
        }
    }
}
相关推荐
弗锐土豆6 小时前
Windows系统中Oracle VM VirtualBox的安装
windows·虚拟机·virtualbox
秋の花6 小时前
【JAVA基础】Java集合基础
java·开发语言·windows
零意@8 小时前
ubuntu切换不同版本的python
windows·python·ubuntu
写bug的小屁孩10 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
hairenjing112312 小时前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
plmm烟酒僧15 小时前
Windows下QT调用MinGW编译的OpenCV
开发语言·windows·qt·opencv
Jtti17 小时前
Windows系统服务器怎么设置远程连接?详细步骤
运维·服务器·windows
小奥超人18 小时前
PPT文件设置了修改权限,如何取消权?
windows·经验分享·microsoft·ppt·办公技巧
hairenjing11231 天前
使用 Mac 数据恢复从 iPhoto 图库中恢复照片
windows·stm32·嵌入式硬件·macos·word
九鼎科技-Leo1 天前
了解 .NET 运行时与 .NET 框架:基础概念与相互关系
windows·c#·.net