扑克牌排序_JAVA 扑克牌排序打印,并进行洗牌
点击上方蓝字关注我们
一、Puke类:
首先定义扑克牌的参数
定义字符串型的花色(color),点数(points)两个有关于扑克牌的参数,且用private关键字进行修饰,被private修饰的后的成员只能在本类中被访问,并且需要提供对应的set,get方法,以提高数据的安全性。
public class Puke { private String color; private String points; public Puke(){ } public Puke(String color,String points){ this.color=color; this.points=points; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getPoints() { return points; } public void setPoints(String points) { this.points = points;
equals方法:扑克牌中没有花色,点数完全相同的两张扑克牌,为避免重复多余,通过花色和点数两个特征值来判断两张扑克牌是否“等价”,当这两张扑克牌等价时,判断结果为false,否则结果为true。运用toString方法确定最后打印出来的格式为花色+点数(如:黑桃A)
public boolean equals(Object obj){ Puke p = (Puke) obj; if(this == obj){ return true; } if(obj == null){ return false; } if(obj instanceof Puke){ return this.color.equals(p.getColor())&&this.points.equals(p.getPoints()); } return false; } public String toString(){ return color+points; }
二、Test类:
为了使得结果清晰明了,方便阅读,我们对最后打印出来的格式进行规定,插入一个show()方法。按照扑克牌的数量,每十三张就进行一次换行,要注意这里是list数组,数组的长度需要用list.size()来表示。
public class TestPuke { public static void show(ArrayList list) { for(int i=0;i System.out.print(list.get(i)+" "); if((i+1)%13 == 0){ System.out.print("\n"); } } }
main方法 里首先定义一个list数组,存储最后花色+点数格式的扑克牌,类型要保证一致。为了不造成混乱,方便存储将花色和点数两个参数分开存在两个String数组当中。插入两层for循环将花色点数两个数组依次添入list数组当中,因为大小王的格式特殊,在此跳出循环单独添加进入数组当中。最后调用show方法对数组进行打印。(为了方便测试,我们将黑桃设为最大进行测试)
public static void main(String[] args) { ArrayListlist = new ArrayList(); String [] color = {"黑桃","梅花","方片","红桃"}; String [] points = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; for (int i = 0; i < color.length; i++) { for (int j = 0; j < points.length; j++) { list.add(new Puke(color[i], points[j])); } } list.add(new Puke("红","大王")); list.add(new Puke("黑","小王")); show(list);
执行如上代码打印结果如下:
若要进行随机打乱的洗牌操作则导入java.util.Collections接口,调用Collections.shuffle()方法进行随机排序打乱。
Collections.shuffle(list); System.out.println("\n洗牌后:"); show(list); }}
洗牌结果如下:
自此,洗牌完成。
原文:CSDN博主「森光等屿」
原文链接:https://blog.csdn.net/weixin_43634775/article/details/97399536
欢迎关注“Java引导者”,我们分享最有价值的Java的干货文章,助力您成为有思想的Java开发工程师!
扑克牌排序_JAVA 扑克牌排序打印,并进行洗牌相关推荐
- java输入数量扑克牌排序_Java扑克游戏(多人多牌数比较游戏)的实现
具体实现步骤如下: 实现扑克Card类,用于储存扑克牌,1-13代表点数,4-1代表花色(黑桃,红桃,梅花,分块) 实现扑克列表CardList类,用于实现生成一副牌,洗牌,发牌的功能 实现玩家Pla ...
- java 8 排序_Java 八大排序实现
参考链接 本文只给出算法的Java实现版本,具体原理参考:八大排序算法. 公用代码 下面的swap()函数,是排序算法中经常用到的,单独贴出来. public void swap(int[] a, i ...
- java map按照key排序_java Map排序(按key和按value)
1.按照key排序 对于java中Map的排序,有排序Map,比如TreeMap,对于这个Map,首先只能按照键排序,其次再put和remove的时候由于需要排序,性能上会有所牺牲. 这种方案,使用h ...
- arraylist java 排序_Java ArrayList排序方法详解
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一.ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在 ...
- java代码实现count排序_java计数排序
介绍: 该算法不基于比较进行排序,时间复杂度O(n + k),很难说与基于比较的排序算法(时间复杂度下限O(nlogn))哪个更优,具体要比较k与nlogn的大小: 实现思路: 1.以数组origin ...
- java对象排序_java对象排序(Comparable)详细实例
对象实现Comparable接口 package collections.sort.comparable; public class Field implements Comparable{ priv ...
- java 性能 排序_Java常用排序算法及性能测试集合
package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...
- java list 排序_java list排序
java list 排序主要用到: Collections.sort方法: package com.tom.compare; import java.util.ArrayList; import ja ...
- java set排序_Java Set排序的方法
Java Set排序的方法 Set中TreeSet 本身就是有序的元素,那么下面重点介绍下HashSet的2种排序方法. 1. 把HashSet保存在ArrayList里,再用Collections. ...
最新文章
- 2020-10-29 PYTORCH与Tensorflow速查表
- 如何防止google colab 掉线
- MFC单文档框架编程(二): SDI框架下的消息处理
- yocto-sumo源码解析(十一): recvfds
- 凸优化第九章无约束优化 9.4最速下降方法
- 解决Unresolved external ‘AlphaBlend‘ referenced的办法
- 【渝粤题库】陕西师范大学165104 组织行为学原理 作业(高起专)
- app开发流程:手机软件开发app的6个步骤
- Vuecli 城市三级联动的使用
- 一步一步的手写Promise
- 什么是编程?为什么要编程?
- U盘文件、文件夹不显示却能搜索到 显示U盘文件的解决办法
- linaCharts开发笔记:Three.js导入obj和使用中文
- Qt ‘tr‘ was not declared in this scop
- mysql 数据类型 查询_MySQL数据类型
- easyexcel 在 设置标题_七. EasyExcel标题加批注和标题字体填充红色
- 阿里巴巴 Excel工具easyExcel
- java8新特性学习笔记之唠唠“匿名内部类与lambda”
- Nodejs之解决接口跨域问题
- FastICA算法类有哪些最新发表的毕业论文呢?