点击上方蓝字关注我们

一、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 扑克牌排序打印,并进行洗牌相关推荐

  1. java输入数量扑克牌排序_Java扑克游戏(多人多牌数比较游戏)的实现

    具体实现步骤如下: 实现扑克Card类,用于储存扑克牌,1-13代表点数,4-1代表花色(黑桃,红桃,梅花,分块) 实现扑克列表CardList类,用于实现生成一副牌,洗牌,发牌的功能 实现玩家Pla ...

  2. java 8 排序_Java 八大排序实现

    参考链接 本文只给出算法的Java实现版本,具体原理参考:八大排序算法. 公用代码 下面的swap()函数,是排序算法中经常用到的,单独贴出来. public void swap(int[] a, i ...

  3. java map按照key排序_java Map排序(按key和按value)

    1.按照key排序 对于java中Map的排序,有排序Map,比如TreeMap,对于这个Map,首先只能按照键排序,其次再put和remove的时候由于需要排序,性能上会有所牺牲. 这种方案,使用h ...

  4. arraylist java 排序_Java ArrayList排序方法详解

    由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一.ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在 ...

  5. java代码实现count排序_java计数排序

    介绍: 该算法不基于比较进行排序,时间复杂度O(n + k),很难说与基于比较的排序算法(时间复杂度下限O(nlogn))哪个更优,具体要比较k与nlogn的大小: 实现思路: 1.以数组origin ...

  6. java对象排序_java对象排序(Comparable)详细实例

    对象实现Comparable接口 package collections.sort.comparable; public class Field implements Comparable{ priv ...

  7. java 性能 排序_Java常用排序算法及性能测试集合

    package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...

  8. java list 排序_java list排序

    java list 排序主要用到: Collections.sort方法: package com.tom.compare; import java.util.ArrayList; import ja ...

  9. java set排序_Java Set排序的方法

    Java Set排序的方法 Set中TreeSet 本身就是有序的元素,那么下面重点介绍下HashSet的2种排序方法. 1. 把HashSet保存在ArrayList里,再用Collections. ...

最新文章

  1. 2020-10-29 PYTORCH与Tensorflow速查表
  2. 如何防止google colab 掉线
  3. MFC单文档框架编程(二): SDI框架下的消息处理
  4. yocto-sumo源码解析(十一): recvfds
  5. 凸优化第九章无约束优化 9.4最速下降方法
  6. 解决Unresolved external ‘AlphaBlend‘ referenced的办法
  7. 【渝粤题库】陕西师范大学165104 组织行为学原理 作业(高起专)
  8. app开发流程:手机软件开发app的6个步骤
  9. Vuecli 城市三级联动的使用
  10. 一步一步的手写Promise
  11. 什么是编程?为什么要编程?
  12. U盘文件、文件夹不显示却能搜索到 显示U盘文件的解决办法
  13. linaCharts开发笔记:Three.js导入obj和使用中文
  14. Qt ‘tr‘ was not declared in this scop
  15. mysql 数据类型 查询_MySQL数据类型
  16. easyexcel 在 设置标题_七. EasyExcel标题加批注和标题字体填充红色
  17. 阿里巴巴 Excel工具easyExcel
  18. java8新特性学习笔记之唠唠“匿名内部类与lambda”
  19. Nodejs之解决接口跨域问题
  20. FastICA算法类有哪些最新发表的毕业论文呢?

热门文章

  1. 机器学习PAL数据可视化
  2. Ascend昇腾计算
  3. Docker Buildx插件
  4. 激光雷达模块支持提高高速公路速度
  5. Linux内存技术分析(下)
  6. [JavaScript] 日期时间戳的使用与计算
  7. C++ set 的使用
  8. python 16进制转10进制, 8进制转10进制, 2进制转10进制的方法
  9. python 把字母转数字
  10. python 遍历字符串