集合练习1

练习一

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

java 复制代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class 练习1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
//        方法一:
        Collections.addAll(list,"张伟", "王芳", "李娜", "刘洋", "陈静",
                "杨帆", "黄磊", "赵薇", "周杰", "吴刚",
                "孙丽", "朱强", "徐敏", "马超", "胡军",
                "林峰", "郭靖", "何洁", "高伟", "梁静",
                "郑凯", "谢娜", "宋佳", "唐嫣", "董洁",
                "袁泉", "邓超", "韩梅", "蔡徐", "彭于");
        Random random = new Random();
        int index = random.nextInt(list.size());
        System.out.println(list.get(index));
//        方法二:
        Collections.shuffle(list);
        System.out.println(list.get(0));
    }
}

练习二

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

要求:

  1. 被点到的学生不会再被点到
  2. 如果所有学生都被点完了,需要重新开启第二轮点名
java 复制代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class 练习2 {
    public static void main(String[] args) {
        List<String> boyList = new ArrayList<>();
        List<String> girlList = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        Collections.addAll(boyList, "张伟", "刘洋", "杨帆",
                "黄磊", "周杰", "吴刚", "朱强",
                "马超", "胡军", "林峰", "郭靖",
                "高伟", "郑凯", "袁泉", "邓超",
                "蔡徐", "彭于");
        Collections.addAll(girlList, "王芳", "李娜", "陈静",
                "赵薇", "孙丽", "徐敏", "何洁",
                "梁静", "谢娜", "宋佳", "唐嫣",
                "董洁", "韩梅");
        Collections.addAll(list,1,1,1,1,1,1,1,0,0,0);
        Random random = new Random();
        int index = random.nextInt(list.size());
        int number = list.get(index);
        if(number ==1){
            int boyIndex = random.nextInt(boyList.size());
            System.out.println(boyList.get(boyIndex));
        }else if (number ==0){
            int girlIndex = random.nextInt(girlList.size());
            System.out.println(girlList.get(girlIndex));
        }

    }
}

练习三:

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

要求:

  1. 被点到的学生不会再被点到
  2. 如果所有学生都被点完了,需要重新开启第二轮点名
  3. 70%随机到男生,30%随机到女生
java 复制代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class 练习3 {
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        List<String> list2 = new ArrayList<>();
        Collections.addAll(list1, "张伟", "王芳", "李娜", "刘洋", "陈静",
                "杨帆", "黄磊", "赵薇", "周杰", "吴刚",
                "孙丽", "朱强", "徐敏", "马超", "胡军",
                "林峰", "郭靖", "何洁", "高伟", "梁静",
                "郑凯", "谢娜", "宋佳", "唐嫣", "董洁",
                "袁泉", "邓超", "韩梅", "蔡徐", "彭于");
        int count = list1.size();
        Random random = new Random();
        for (int l = 0; l < count; l++) {
            System.out.println("=========第"+l+"轮开始============");
            for (int i = 0; i < count; i++) {
                int index = random.nextInt(list1.size());
                String name = list1.remove(index);
                list2.add(name);
                System.out.println(name);
            }
            list1.addAll(list2);
            list2.clear();
        }

    }
}

练习四:

相关推荐
xbgRS2 小时前
springboot的自动装配
java·spring boot
嘻哈∠※9 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端
白狐_79810 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander25811 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
码匠许师傅11 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试
极创信息13 小时前
系统安全隐患全方位排查方案:标准化渗透测试全流程
java·opencv·struts·数据挖掘·eclipse·语音识别·hibernate
汉字萌萌哒13 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
喜欢的名字被抢了13 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
数据知道14 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
2601_9499506314 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐