java中可变参数和简单游戏
可变参数:
就是一种特殊形参,定义在方法,构造器的形参列表中,格式是:数据类型...参数名称
可变参数的好处:
灵活的接收数据
特点:可以不传数据给它,可以传一个数据或者多个数据给它,也可以传一个数组给它
可变参数的注意事项:
可变参数在方法内部就是一个数组
一个形参列表中的可变参数只有一个
可变参数必须在形参列表的最后面
public class test {public static void main(String[] args) {ttt();//可以不传数据ttt(1);//可以传一个数据ttt(1,2,3);//可以传多个数据ttt(new int[]{1,2,3});//可以传一个数组}public static void ttt(int...nums){//可变参数在方法内部是一个数组System.out.println(Arrays.toString(nums));}//只能有一个可变参数,且必须在形参列表的最后public static void ppp(int age,int...s){}
}
Collections类:
是一个用来操作集合的工具类
public static <T> boolean addAll(Collection<? super T> c, T... elements)
Adds all of the specified elements to the specified collection. Elements to be added may be specified individually or as an array.
往集合中批量添加数据
public static void shuffle(List<?> list)
Randomly permutes the specified list using a default source of randomness.
打乱List集合中的元素顺序
void sort(List<T> list)
对List集合中的元素进行升序排序
public static <T> void sort(List<T> list, Comparator<? super T> c)
Sorts the specified list according to the order induced by the specified comparator.
对List集合中的元素,按照比较器对象指定的规则进行排序
public class test {public static void main(String[] args) {//1 addAllArrayList<String>list=new ArrayList<>();Collections.addAll(list,"java1","java2","java3");System.out.println(list);//2:shuffleCollections.shuffle(list);System.out.println(list);//[java2, java3, java1]//sort,默认升序Collections.sort(list);System.out.println(list);//[java1, java2, java3]//sort排序自定义对象ArrayList<Student>list1=new ArrayList<>();list1.add(new Student("aa",10));list1.add(new Student("bb",90));list1.add(new Student("cc",22));Collections.sort(list1, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {return o1.getAge()-o2.getAge();//按照年龄升序}});Collections.sort(list1,(o1,o2)->o1.getAge()-o2.getAge());System.out.println(list1);}
}public class test {public static void main(String[] args) {//1 addAllArrayList<String>list=new ArrayList<>();Collections.addAll(list,"java1","java2","java3");System.out.println(list);//2:shuffleCollections.shuffle(list);System.out.println(list);//[java2, java3, java1]//sort,默认升序Collections.sort(list);System.out.println(list);//[java1, java2, java3]//sort排序自定义对象ArrayList<Student>list1=new ArrayList<>();list1.add(new Student("aa",10));list1.add(new Student("bb",90));list1.add(new Student("cc",22));Collections.sort(list1, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {return o1.getAge()-o2.getAge();//按照年龄升序}});Collections.sort(list1,(o1,o2)->o1.getAge()-o2.getAge());System.out.println(list1);}
}
以下是一个简单的游戏:
牌类:
public class Card {private String number;private String color;private int size;public Card() {}public Card(String number, String color, int size) {this.number = number;this.color = color;this.size = size;//牌的大小}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getSize() {return size;}public void setSize(int size) {this.size = size;}@Overridepublic String toString() {return "Card{" +"number='" + number + '\'' +", color='" + color + '\'' +", size=" + size +'}';}
}
操作牌类
public class Room {private ArrayList<Card>list=new ArrayList<>();public Room() {String []numbers={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};int size=0;String []colors={"方块","梅花","红桃","黑桃"};for (String number : numbers) {size++;for (String color : colors) {Card c=new Card(number,color,size);list.add(c);}}Card c1=new Card("","小王",size++);Card c2=new Card("","大王",size);Collections.addAll(list,c1,c2);System.out.println(list);}public void randomCard(){System.out.println("开始洗牌");Collections.shuffle(list);//System.out.println(list);}public void devoteCard(){ArrayList<Card>list1=new ArrayList<>();ArrayList<Card>list2=new ArrayList<>();ArrayList<Card>list3=new ArrayList<>();for (int i = 0; i < list.size()-3; i++) {//只发51张牌Card c=list.get(i);if(i%3==0){list1.add(c);}else if(i%3==1){list2.add(c);}else{list3.add(c);}}sortCard(list1);sortCard(list2);//对牌进行大小排序sortCard(list3);System.out.println(list1);System.out.println(list2);System.out.println(list3);System.out.println("底牌是");List<Card> LastCard= list.subList(list.size()-3,list.size());//包前不包后System.out.println(LastCard);}private void sortCard(ArrayList<Card> list2) {/*Collections.sort(list2, new Comparator<Card>() {@Overridepublic int compare(Card o1, Card o2) {return o1.getSize()-o2.getSize();}});}*/Collections.sort(list2, (o1, o2) -> o1.getSize() - o2.getSize());}
}
test:
public class test {public static void main(String[] args) {Room r=new Room();r.randomCard();ArrayList<Card>[]lists=new ArrayList[3];r.devoteCard();}
}
结果:
[Card{number='3', color='方块', size=1}, Card{number='3', color='梅花', size=1}, Card{number='3', color='红桃', size=1}, Card{number='3', color='黑桃', size=1}, Card{number='4', color='方块', size=2}, Card{number='4', color='梅花', size=2}, Card{number='4', color='红桃', size=2}, Card{number='4', color='黑桃', size=2}, Card{number='5', color='方块', size=3}, Card{number='5', color='梅花', size=3}, Card{number='5', color='红桃', size=3}, Card{number='5', color='黑桃', size=3}, Card{number='6', color='方块', size=4}, Card{number='6', color='梅花', size=4}, Card{number='6', color='红桃', size=4}, Card{number='6', color='黑桃', size=4}, Card{number='7', color='方块', size=5}, Card{number='7', color='梅花', size=5}, Card{number='7', color='红桃', size=5}, Card{number='7', color='黑桃', size=5}, Card{number='8', color='方块', size=6}, Card{number='8', color='梅花', size=6}, Card{number='8', color='红桃', size=6}, Card{number='8', color='黑桃', size=6}, Card{number='9', color='方块', size=7}, Card{number='9', color='梅花', size=7}, Card{number='9', color='红桃', size=7}, Card{number='9', color='黑桃', size=7}, Card{number='10', color='方块', size=8}, Card{number='10', color='梅花', size=8}, Card{number='10', color='红桃', size=8}, Card{number='10', color='黑桃', size=8}, Card{number='J', color='方块', size=9}, Card{number='J', color='梅花', size=9}, Card{number='J', color='红桃', size=9}, Card{number='J', color='黑桃', size=9}, Card{number='Q', color='方块', size=10}, Card{number='Q', color='梅花', size=10}, Card{number='Q', color='红桃', size=10}, Card{number='Q', color='黑桃', size=10}, Card{number='K', color='方块', size=11}, Card{number='K', color='梅花', size=11}, Card{number='K', color='红桃', size=11}, Card{number='K', color='黑桃', size=11}, Card{number='A', color='方块', size=12}, Card{number='A', color='梅花', size=12}, Card{number='A', color='红桃', size=12}, Card{number='A', color='黑桃', size=12}, Card{number='2', color='方块', size=13}, Card{number='2', color='梅花', size=13}, Card{number='2', color='红桃', size=13}, Card{number='2', color='黑桃', size=13}, Card{number='', color='小王', size=13}, Card{number='', color='大王', size=14}]
开始洗牌
[Card{number='3', color='方块', size=1}, Card{number='3', color='黑桃', size=1}, Card{number='4', color='黑桃', size=2}, Card{number='4', color='梅花', size=2}, Card{number='4', color='方块', size=2}, Card{number='6', color='方块', size=4}, Card{number='8', color='梅花', size=6}, Card{number='8', color='黑桃', size=6}, Card{number='9', color='梅花', size=7}, Card{number='10', color='黑桃', size=8}, Card{number='10', color='方块', size=8}, Card{number='J', color='红桃', size=9}, Card{number='J', color='梅花', size=9}, Card{number='J', color='黑桃', size=9}, Card{number='K', color='红桃', size=11}, Card{number='A', color='黑桃', size=12}, Card{number='2', color='黑桃', size=13}]
[Card{number='3', color='红桃', size=1}, Card{number='6', color='黑桃', size=4}, Card{number='6', color='红桃', size=4}, Card{number='7', color='方块', size=5}, Card{number='7', color='红桃', size=5}, Card{number='7', color='黑桃', size=5}, Card{number='10', color='梅花', size=8}, Card{number='J', color='方块', size=9}, Card{number='Q', color='黑桃', size=10}, Card{number='K', color='方块', size=11}, Card{number='K', color='梅花', size=11}, Card{number='K', color='黑桃', size=11}, Card{number='A', color='红桃', size=12}, Card{number='2', color='梅花', size=13}, Card{number='2', color='红桃', size=13}, Card{number='', color='小王', size=13}, Card{number='', color='大王', size=14}]
[Card{number='3', color='梅花', size=1}, Card{number='4', color='红桃', size=2}, Card{number='5', color='红桃', size=3}, Card{number='5', color='梅花', size=3}, Card{number='5', color='方块', size=3}, Card{number='5', color='黑桃', size=3}, Card{number='7', color='梅花', size=5}, Card{number='8', color='红桃', size=6}, Card{number='8', color='方块', size=6}, Card{number='9', color='黑桃', size=7}, Card{number='9', color='方块', size=7}, Card{number='9', color='红桃', size=7}, Card{number='10', color='红桃', size=8}, Card{number='Q', color='红桃', size=10}, Card{number='Q', color='梅花', size=10}, Card{number='Q', color='方块', size=10}, Card{number='2', color='方块', size=13}]
底牌是
[Card{number='A', color='梅花', size=12}, Card{number='6', color='梅花', size=4}, Card{number='A', color='方块', size=12}]
相关文章:
java中可变参数和简单游戏
可变参数: 就是一种特殊形参,定义在方法,构造器的形参列表中,格式是:数据类型...参数名称 可变参数的好处: 灵活的接收数据 特点:可以不传数据给它,可以传一个数据或者多个数据给它…...

软考高级架构师:TCP/IP 协议 和 OSI 七层模型
一、AI 讲解 TCP/IP 协议族是一组计算机网络通信协议的集合,其中TCP和IP是两个核心协议。TCP/IP 协议族通常被用来参照互联网的基础通信架构。与之相对的OSI七层模型,是一个更为理论化的网络通信模型,它将网络通信分为七个层次。 TCP/IP 与…...

【微服务】------常见模型的分析与比较
DDD 分层架构 整洁架构 整洁架构又名“洋葱架构”。为什么叫它洋葱架构?看看下面这张图你就明白了。整洁架构的层就像洋葱片一样,它体现了分层的设计思想。 整洁架构最主要的原则是依赖原则,它定义了各层的依赖关系,越往里依赖越…...
C#实现HTTP上传文件的方法
/// <summary> /// Http上传文件 /// </summary> public static string HttpUploadFile(string url, string path) {// 设置参数HttpWebRequest request WebRequest.Create(url) as HttpWebRequest;CookieContainer cookieContainer new CookieContainer();reque…...

pdffactory pro 8注册码序列号下载 附教程
PdfFactory Pro可以说是一款行业专业且技术领先的的PDF虚拟打印机软件。其不仅占用系统内存小巧,功能强大,可支持用户无需使用Acrobat来创建Adobe PDF即可以进行PDF组件的创建和打印。同时,现在全新的PdfFactory Pro 8也正式上线来袭…...

软件供应链安全:寻找最薄弱的环节
在当今的数字时代,软件占据主导地位,成为全球组织业务和创新的支柱。它是差异化、项目效率、成本降低和竞争力背后的驱动力。软件决定了企业如何运营、管理与客户、员工和合作伙伴的关系,以及充分利用他们的数据。 挑战在于,当今…...

Training - Kubeflow 的 PyTorchJob 配置 DDP 分布式训练 (ncclInternalError)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/137569332 Kubeflow 的 PyTorchJob 是 Kubernetes 自定义资源,用于在 Kubernetes 上运行 PyTorch 训练任务,是 K…...

java Web在线考试管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc
一、源码特点 JSP 在线考试管理系统是一套完善的web设计系统,对理解JSP java 编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使…...

爬虫 新闻网站 以湖南法治报为例(含详细注释) V4.0 升级 自定义可任意个关键词查询、时间段、粗略判断新闻是否和优化营商环境相关,避免自己再一个个判断
目标网站:湖南法治报 爬取目的:为了获取某一地区更全面的在湖南法治报的已发布的和优化营商环境相关的宣传新闻稿,同时也让自己的工作更便捷 环境:Pycharm2021,Python3.10, 安装的包:requests&a…...

科技云报道:从“奇点”到“大爆炸”,生成式AI开启“十年周期”
科技云报道原创。 世界是复杂的,没有人知道未来会怎样,但如果单纯从技术的角度,我们总是能够沿着技术发展的路径,找到一些主导未来趋势的脉络。 从Sora到Suno,从OpenAI到Copilot、Blackwell,这些热词在大…...

【用户案例】太美医疗基于Apache DolphinScheduler的应用实践
大家好,我叫杨佳豪,来自于太美医疗。今天我为大家分享的是Apache DolphinScheduler在太美医疗的应用实践。今天的分享主要分为四个部分: 使用历程及选择理由稳定性的改造功能定制与自动化部署运维巡检与优化 使用历程及选择理由 公司介绍 …...

权限管理系统【BUG】
1.1.简介 忙里偷闲,学点Java知识。越发觉得世界语言千千万,最核心的还是思想,一味死记硬背只会让人觉得很死板不灵活,嗯~要灵活~ 1.2.问题 permission.js:37 [Vue warn]: Error in render: "TypeError: Cannot read prope…...

【CPA考试】2024注册会计师报名照片尺寸要求解读及手机拍照方法
随着2024年注册会计师考试的临近,众多会计专业人士和学生都开始准备报名参加这一行业的重要考试,报名时间为4月8日至4月30日。报名过程中,一张符合要求的证件照是必不可少的。本文将为您详细解读2024年注册会计师考试报名照片的尺寸要求&…...
高并发环境下的实现与优化策略
在现代互联网应用中,高并发处理能力是衡量系统性能和稳定性的关键指标之一。尤其对于电商、社交、在线支付等业务场景,面对瞬间涌入的大规模用户请求,如何保证系统的稳定性和响应速度,对技术架构设计与优化提出了极高要求。本文将…...

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第二套
华为海思校园招聘-芯片-数字 IC 方向 题目分享(共9套,有答案和解析,答案非官方,未仔细校正,仅供参考)——第二套(共九套,每套四十个选择题) 部分题目分享,完整版获取&am…...

UML2.0在系统设计中的实际使用情况
目前我在系统分析设计过程中主要使用UML2.0来表达,使用StarUML软件做实际设计,操作起来基本很顺手,下面整理一下自己的使用情况。 1. UML2.0之十三张图 UML2.0一共13张图,可以分为两大类:结构图-静态图,行…...

django celery 异步任务 异步存储
环境:win11、python 3.9.2、django 4.2.11、celery 4.4.7、MySQL 8.1、redis 3.0 背景:基于django框架的大量任务实现,并且需要保存数据库 时间:20240409 说明:异步爬取小说,并将其保存到数据库 1、创建…...
apex0.1版本安装踩坑指南
踩了无数坑,发现只需要三行命令就可以成功安装apex0.1. 由于pip命令下只能找到0.9的版本,所以需要git clone的方式安装。 1. git clone https://www.github.com/nvidia/apex 这个命令的意思是下载apex到本地。注意,这里需要稳定的环境…...
HTML — 弹性布局(2)
弹性布局的其他属性 1. order 决定弹性项目(flex item)的排列顺序,使用较少,默认为0 。 order 的值可以为任意整数(正整数或负整数均可,也可为0),数值越小越排在前面。 2. align-s…...

MYSQL 8.0版本修改用户密码(知道登录密码)和Sqlyog错误码2058一案
今天准备使用sqlyog连接一下我Linux上面的mysql数据库,然后就报如下错误 有一个简单的办法就是修改密码为password就完事!然后我就开始查找如何修改密码! 如果是需要解决Sqlyog错误码2058的话,执行以下命令,但是注意root对应host是不是loca…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...