java 打印_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);

执行如上代码打印结果如下:

6f1286f539fbf10c9a551178029a1be5.png    若要进行随机打乱的洗牌操作则导入java.util.Collections接口,调用Collections.shuffle()方法进行随机排序打乱。
Collections.shuffle(list);    System.out.println("\n洗牌后:");    show(list);  }}

    洗牌结果如下:

dbc475f9310f84befdd25728598bd07d.png

自此,洗牌完成。

原文链接:https://blog.csdn.net/weixin_43634775/article/details/97399536

千 硕 教 育

| 打  造  更  好  的  自  己 |

更多往期精彩,推荐阅读:

  • 千硕教育第一届产品创意大赛完美落幕

  • 阿里百度腾讯华为美团等大厂面试题汇总

  • 互联网公司里的这些潜规则?你都知道么?

  • 每一场卓越,都有着微不足道的开始

  • 这批90后已经当高管了

adcb46bbeb161a42fe37137444982ef7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值