集合的综合练习

news2024/11/18 13:45:45

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

public class test {
    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);
    	}
}

自动点名器2:班级里有N个学生,要求:70%概率点到男生,30%概率点到女生。

分析:1)用一个【1,1,1,1,1,1,1,0,0,0】集合,打乱顺序,来获取随机索引,抽到1的概率为70%,抽到0的概率为30%。

2)创建男生集合,女生集合添加数据,判断索引值为1还是0,若为1在男生集合抽取,若为0在女生集合抽取。

public class test {
    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());
        int number=list.get(index);
        System.out.println(number);
        ArrayList<String> boy=new ArrayList<>();//男生集合
        Collections.addAll(boy, "李明","赵六","王五","安卓","李四","钱孙","史曾");
        ArrayList<String> girl=new ArrayList<>();//女生集合
        Collections.addAll(girl, "刘丽","范若","何怡");
        //判断索引为1还是0
        if(number==1) {
        	int boyindex=r.nextInt(boy.size());//获取boy集合的随机索引
        	System.out.println(boy.get(boyindex));
        }else {
        	int girlindex=r.nextInt(girl.size());//获取girl集合的随机索引
        	System.out.println(girl.get(girlindex));
        }
    	}
}

自动点名器3:班级里有5个学生,要求:被点到的学生不会再被点到;但是如果班级中所有的学生都点完了,需要重新开启第二轮点名。
分析:1)被点到的学生不会再被点到,用remove移除集合中的元素,利用for循环保证将每位同学点到。

2)需要重新开启第二轮点名,用一个新集合保存旧集合的数据,remove移除完元素后,集合为空,将新集合数据赋给旧集合,利用for循环,定义开启第n次点名(假设点六次名)

public class test {
    public static void main(String [] args) {
    	 
        ArrayList<String> list=new ArrayList<>();//创建一个集合存放学生
        Collections.addAll(list, "李明","范若","王五","刘丽","史曾");
        Random r=new Random();
        int count=list.size();
        ArrayList<String> list1=new ArrayList<>();//第二个集合
        for(int j=0;j<=5;j++) {
        	System.out.println("-------第"+(j+1)+"次点名--------");
                for(int i=0;i<count;i++) {
                   int index=r.nextInt(list.size());
                   String name=list.remove(index);//要保证被点到的同学不会再被点到,用remove移除集合元素
                   list1.add(name);
                     System.out.println(name);
                 }
                    list.addAll(list1);
                    list1.clear();
        }
    	}
}

集合嵌套:需求:定义一个Map集合,键用表示省份名称province,值表示市city,但是市会有多个。
添加完毕后,遍历结果格式如下:
江苏省=南京市,扬州市,苏州市,无锡市,常州市
湖北省=武汉市,孝感市,十堰市,宜昌市,鄂州市
河北省=石家庄市,唐山市,邢台市,保定市,张家口市
分析:值用单列集合存储。

public class test {
    public static void main(String [] args) {
    	 
       HashMap<String, ArrayList<String>> hm=new HashMap<>();
       ArrayList<String> city1=new ArrayList<>();
       Collections.addAll(city1, "南京市","扬州市","苏州市","无锡市","常州市");
       ArrayList<String> city2=new ArrayList<>();
       Collections.addAll(city2, "武汉市","孝感市","十堰市","宜昌市","鄂州市");
       ArrayList<String> city3=new ArrayList<>();
       Collections.addAll(city3, "石家庄市","唐山市","邢台市","保定市","张家口市");
       hm.put("江苏省", city1);
       hm.put("湖北省", city2);
       hm.put("河南省", city3);
       //利用entry遍历map
       Set<Map.Entry<String, ArrayList<String>>> entries=hm.entrySet();
       for(Map.Entry<String, ArrayList<String>> entry:entries) {
    	   String key=entry.getKey();
    	   ArrayList<String> value=entry.getValue();
    	  StringJoiner sj=new StringJoiner(","," "," ");//传递标记,开始标记,结束标记
    	   for(String city:value) {
    		  sj.add(city);
    	   }
    	   System.out.println(key+" = "+sj);
       }
      
    	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1713231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

618必买的数码好物有哪些?盘点兼具设计与实用的数码好物分享

随着618购物节的到来&#xff0c;数码爱好者们又开始跃跃欲试&#xff0c;期待在这个年度大促中寻找到自己心仪的数码好物&#xff0c;在这个数字化时代&#xff0c;数码产品不仅是我们日常生活的必需品&#xff0c;更是提升生活品质的重要工具&#xff0c;那么在众多的数码产品…

一行命令将已克隆的本地Git仓库推送到内网服务器

一、需求背景 我们公司用gitea搭建了一个git服务器&#xff0c;其中支持win7的最高版本是v1.20.6。 我们公司的电脑在任何时候都不能连接外网&#xff0c;但是希望将一些开源的仓库移植到内网的服务器来。一是有相关代码使用的需求&#xff0c;二是可以建设一个内网能够查阅的…

【数据结构和算法】-动态规划爬楼梯

动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;是运筹学的一个分支&#xff0c;主要用于解决包含重叠子问题和最优子结构性质的问题。它的核心思想是将一个复杂的问题分解为若干个子问题&#xff0c;并保存子问题的解&#xff0c;以便在需要时直接利用&am…

15.Redis之持久化

0.知识引入 mysql的事务,有四个比较核心的特性. 1. 原子性 2.一致性 3.持久性 >(和持久化说的是一回事)【把数据存储在硬盘 >持久把数据存储茌内存上>不持久~】【重启进程/重启主机 之后,数据是否存在!!】 4.隔离性~ Redis 是一个 内存 数据库.把数据存储在内存中的…

运维必备的 Linux文件系统

1 前言 我们来简单看一下Linux系统的磁盘、目录、文件。 2 Linux 文件系统 在 Linux 操作系统中&#xff0c;所有被操作系统管理的资源&#xff0c;例如网络接口卡、磁盘驱动器、打印机、输入输出 设备、普通文件或是目录都被看作是一个文件。 也就是说在 Linux 系统中有…

长文总结 | Python基础知识点,建议收藏

测试基础-Python篇 基础① 变量名命名规则 - 遵循PEP8原则 普通变量&#xff1a;max_value 全局变量&#xff1a;MAX_VALUE 内部变量&#xff1a;_local_var 和关键字重名&#xff1a;class_ 函数名&#xff1a;bar_function 类名&#xff1a;FooClass 布尔类型的变量名…

21天精通FL Studio21.2.8!中文汉化全攻略方法教程

在音乐制作的世界中&#xff0c;有一款软件以其强大的功能和易用性而广受好评&#xff0c;那就是FL Studio。而最新版本的FL Studio 21更是在原有的基础上进行了全面的升级&#xff0c;为我们带来了更多的惊喜。今天&#xff0c;我们就一起来了解一下这款最新的水果软件——FL …

全球首例光伏电场网络攻击事件曝光

快速增长的光伏发电正面临日益严重的网络安全威胁。近日&#xff0c;日媒报道了首个针对光伏电场的网络攻击事件。 首例公开确认的光伏电网攻击 日本媒体《产经新闻》近日报道&#xff0c;黑客劫持了一个大型光伏电网中的800台远程监控设备(由工控电子制造商Contec生产的Solar…

超分论文走读

codeFormer 原始动机 高度不确定性&#xff0c;模糊到高清&#xff0c;存在一对多的映射纹理细节丢失人脸身份信息丢失 模型实现 训练VQGAN 从而得到HQ码本空间作为本文的离散人脸先验。为了降低LQ-HQ映射之间的不确定性&#xff0c;我们设计尽量小的码本空间和尽量短的Code…

文心智能体:基于零代码平台的智能体开发与应用

文章目录 初识文心智能体文心智能体平台优势文心智能体平台功能 创建文心智能体总结 初识文心智能体 文心智能体平台是基于文心大模型的智能体构建平台&#xff0c;为开发者提供低成本的开发方式&#xff0c;支持广大开发者根据自身行业领域、应用场景&#xff0c;采用多样化的…

isscc2024 short course4 In-memory Computing Architectures

新兴的ML加速器方法&#xff1a;内存计算架构 1. 概述 内存计算&#xff08;In-memory Computing&#xff09;架构是一种新兴的机器学习加速器方法&#xff0c;通过将计算能力集成到存储器中&#xff0c;以减少数据移动的延迟和能耗&#xff0c;从而提高计算效率和性能。这种方…

用于癌症免疫治疗的自佐剂聚胍纳米疫苗

近期&#xff0c;沈阳药科大学孙进教授团队、罗聪教授团队与新加坡国立大学陈小元教授团队共同合作在美国化学会旗下期刊《ACS nano》&#xff08;IF17.1&#xff09;上发表题为“Self-Adjuvanting Polyguanidine Nanovaccines for Cancer Immunotherapy”&#xff08;用于癌症…

Sora,开启通往世界模拟之路!

2024年2月16日&#xff0c;OpenAI发布视频生成AI大模型Sora。消息一经发出&#xff0c;业界再一次被之震撼。 OpenAI官网描述&#xff1a;Sora是一个根据文本指令生成真实与虚拟场景的AI模型&#xff0c;可根据用户指令生成时长达1分钟的高清视频&#xff0c;能生成具有多个角色…

ee trade:主力如何建仓吸筹的

主力建仓吸筹是指大型机构投资者或市场主力在股票市场中通过一系列策略和操作&#xff0c;逐步购买并积累大量股票&#xff0c;以建立或增加其在某只股票上的持仓。这个过程通常是为了在未来通过股价上涨来实现盈利。以下是一些主力可能采用的建仓吸筹策略&#xff1a; 隐蔽吸…

命运方舟 失落的方舟台服下载教程+账号注册教程(图文全攻略)

命运方舟 失落的方舟台服下载教程账号注册教程(图文全攻略) 失落的方舟&#xff0c;作为今年一款备受瞩目的MMORPG类型游戏&#xff0c;在官宣的时候就收获了一波不小的热度。这款游戏由游戏开发商Smile gate开发&#xff0c;游戏本体搭建于知名的虚幻引擎之上&#xff0c;为玩…

torch.scatter看图理解

torch.Tensor.scatter 有 4 个参数&#xff1a; scatter(dim, index, src, reduceNone) 先忽略 Reduce&#xff0c;最后再解释。先从最简单的开始。我们有一个 (2,4) 形状的张量&#xff0c;里面填充了 1&#xff1a; 粉红色的符号表示张量结构 并且我们传入相应的参数并得到…

5.25.6 深度学习在放射图像中检测和分类乳腺癌病变

计算机辅助诊断 (CAD) 系统使用数字化乳房 X 线摄影图像并识别乳房中存在的异常情况。深度学习方法从有限数量的专家注释数据中学习图像特征并预测必要的对象。卷积神经网络&#xff08;CNN&#xff09;在图像检测、识别和分类等各种图像分析任务中的性能近年来表现出色。本文提…

用易查分制作研学活动报名,支持在线签名,一键导出报名统计表格!

学校组织研学活动时&#xff0c;需要家长扫码在线填写报名信息&#xff0c;确认安全承诺和手写签名&#xff0c;提交报名后希望分配报名号&#xff0c;应该如何实现&#xff1f; 易查分的新建填表功能就可以实现上述需求&#xff0c;下面就来教大家如何制作吧。 &#x1f4cc;使…

常用IP核的引脚图

一、复数乘法 这是一个Xilinx&#xff08;赛灵思&#xff09;的复数乘法IP核的接口图&#xff0c;包含了几个主要的AXI-Stream接口。每个接口都有其特定的用途&#xff0c;下面将详细解释各个引脚的作用。 主要接口和引脚说明 S_AXIS_A&#xff08;输入复数A&#xff09; s…

【网络安全】新的恶意软件:无文件恶意软件GhostHook正在广泛传播

文章目录 推荐阅读 一种新的恶意软件 GhostHook v1.0 正在一个网络犯罪论坛上迅速传播。这种创新的无文件浏览器恶意软件由 Native-One 黑客组织开发&#xff0c;具有独特的分发方式和多功能性&#xff0c;对各种平台和浏览器构成重大威胁。 GhostHook v1.0 支持 Windows、Andr…