• 自动点名器


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

    1. package MyApi.a00test;
    2. import java.util.ArrayList;
    3. import java.util.Collections;
    4. import java.util.Random;
    5. public class Test1 {
    6. public static void main(String[] args) {
    7. ArrayList list=new ArrayList<>();
    8. Collections.addAll(list,"范闲","范建","范统","杜子腾","王俊凯");
    9. //随机点名
    10. //第一种
    11. /* Random r=new Random();
    12. int index=r.nextInt(list.size());
    13. String name= list.get(index);
    14. System.out.println(name);*/
    15. //第二种
    16. Collections.shuffle(list);
    17. String name=list.get(0);
    18. System.out.println(name);
    19. }
    20. }

    班级里面有N个学生

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

    1. package MyApi.a00test;
    2. import java.util.ArrayList;
    3. import java.util.Collections;
    4. import java.util.Random;
    5. public class Test2 {
    6. public static void main(String[] args) {
    7. ArrayList list=new ArrayList<>();
    8. Collections.addAll(list,1,1,1,1,1,1,1);
    9. Collections.addAll(list,0,0,0);
    10. Collections.shuffle(list);
    11. Random r=new Random();
    12. int index = r.nextInt(list.size());
    13. Integer number = list.get(index);
    14. System.out.println(number);
    15. ArrayList boylist=new ArrayList<>();
    16. ArrayList girllist=new ArrayList<>();
    17. Collections.addAll(boylist,"王俊凯","王源","易烊千玺","夏之光","黄俊捷","肖战","王一博");
    18. Collections.addAll(girllist,"杨幂","迪丽热巴","娜扎");
    19. if(number==1){
    20. int boyindex = r.nextInt(boylist.size());
    21. String boyname = boylist.get(boyindex);
    22. System.out.println(boyname);
    23. }
    24. else {
    25. int girlindex = r.nextInt(girllist.size());
    26. String girlname= boylist.get(girlindex);
    27. System.out.println(girlname);
    28. }
    29. }
    30. }

    要求:

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

    1. package MyApi.a00test;
    2. import java.util.ArrayList;
    3. import java.util.Collections;
    4. import java.util.Random;
    5. public class Test3 {
    6. public static void main(String[] args) {
    7. ArrayList list=new ArrayList<>();
    8. Collections.addAll(list,"王俊凯","王源","易烊千玺","夏之光","黄俊捷","肖战","王一博","杨幂","迪丽热巴","娜扎");
    9. //创建一个临时的集合,用来存储已经被点到名字的学生
    10. ArrayList list2=new ArrayList<>();
    11. for (int i = 0; i < 10; i++) {
    12. int count= list.size();
    13. Random r=new Random();
    14. for (int j = 0; j < count; i++) {
    15. int index = r.nextInt(list.size());
    16. /* String name = list.get(index);
    17. list.remove(name);*/
    18. String name = list.remove(index);
    19. list2.add(name);
    20. System.out.println(name);
    21. }
    22. //此时表示一轮集合已经结束
    23. list.addAll(list2);
    24. list2.clear();
    25. }
    26. }
    27. }

  • 相关阅读:
    easypoi自定义模板导出
    简述React 和 Vue 的 diff 时间复杂度从 O(n^3) 优化 到 O(n) ,那么 O(n^3) 和 O(n) 是如何计算出来的 ?
    【09】基础知识:React组件的生命周期
    java调用海康威视SDK实现车牌识别
    【MATLAB教程案例4】直接序列扩频通信系统的MATLAB仿真
    【Linux】 grep命令使用
    Transformer学习
    20220701 Barbalat引理证明
    select in ()的时候,MySQL会自动按主键自增排序,要是按IN中给定的顺序来取,如何实现呢?
    【C语言】指针的定义、概念和运用
  • 原文地址:https://blog.csdn.net/qq_52326978/article/details/136656841