1. import java.util.LinkedList;
  2. import java.util.Random;
  3.  
  4. //自定义一个Poker类,用于存储扑克的信息(花色、数字)
  5. class Poker{
  6. String color;
  7. String numbers;
  8.  
  9. public Poker(String color, String numbers) {
  10. this.color = color;
  11. this.numbers = numbers;
  12. }
  13.  
  14. //重写toString方法
  15. @Override
  16. public String toString() {
  17. return color + numbers;
  18. }
  19.  
  20. }
  21.  
  22. public class Demo3 {
  23. public static void main(String[] args) {
  24. LinkedList pokers = CreatePoker();
  25. shufflePoker(pokers);
  26. showPoker(pokers);
  27. }
  28.  
  29. //生成一副扑克牌
  30. public static LinkedList CreatePoker(){
  31. LinkedList list = new LinkedList();
  32. String[] color = {"红桃","黑桃","梅花","方块"};
  33. String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
  34. for (int i = 0; i < numbers.length; i++) {
  35. for (int j = 0; j < color.length; j++) {
  36. list.add(new Poker(color[j], numbers[i]));
  37. }
  38. }
  39. return list;
  40. }
  41.  
  42. //将扑克牌信息打印
  43. public static void showPoker(LinkedList pokers){
  44. for (int i = 0; i < pokers.size(); i++) {
  45. System.out.print(pokers.get(i) + " ");
  46. //为什么等于9?因为等于0的话,i为0时,直接换行打印。等于9是0 ~ 9,就是每十张牌变换行一次
  47. if(i % 10 == 9){
  48. System.out.println();
  49. }
  50. }
  51. }
  52.  
  53. //洗牌
  54. public static void shufflePoker(LinkedList pokers){
  55. Random random = new Random();
  56. for (int i = 0; i < 100; i++) { //i < 10也行,只不过原则上越大,牌洗得越乱
  57. int index1 = random.nextInt(pokers.size());
  58. int index2 = random.nextInt(pokers.size());
  59. Poker poker1 = (Poker) pokers.get(index1);
  60. Poker poker2 = (Poker) pokers.get(index2);
  61. pokers.set(index1, poker2);
  62. pokers.set(index2, poker1);
  63. }
  64. }
  65. }

利用LinkedList生成一副扑克牌的更多相关文章

  1. 需求: 使用LinkedList存储一副扑克牌,然后实现洗牌功能。

    import java.util.LinkedList; import java.util.Random; /* 需求: 使用LinkedList存储一副扑克牌,然后实现洗牌功能. */ //扑克类 ...

  2. LinkedList存储一副扑克牌,实现洗牌功能。

    package cd.itcast.runble; import java.util.LinkedList; import java.util.Random; /** * LinkedList存储一副 ...

  3. 利用LinkedList实现洗牌功能

    分2步: 1.生成扑克牌. 2.洗牌. package com.dongbin.collection; import java.util.LinkedList; import java.util.Ra ...

  4. 【转】从一副扑克牌中随机抽取N张

    该问题为产生不重复的随机数序列,形象点就是一副扑克牌中随机抽取N张. 摘自:不重复随机数列生成算法 改了一部分 /** * 从0-max随机选N个数出来 * **/ public static int ...

  5. 利用Swashbuckle生成Web API Help Pages

    利用Swashbuckle生成Web API Help Pages 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: ...

  6. Spring事务管理----声明式:利用TransactionProxyFactoryBean生成事务代理

    通常建议采用声明式事务管理.声明式事务管理的优势非常明显:代码中无需关于关注事务逻辑,让spring声明式事务管理负责事务逻辑,声明式事务管理无需与具体的事务逻辑耦合,可以方便地在不同事务逻辑之间切换 ...

  7. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  8. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

  9. (喷血分享)利用.NET生成数据库表的创建脚本,类似SqlServer编写表的CREATE语句

    (喷血分享)利用.NET生成数据库表的创建脚本,类似SqlServer编写表的CREATE语句 在我们RDIFramework.NET代码生成器中,有这样一个应用,就是通过数据库表自动生成表的CREA ...

随机推荐

  1. NIO(四、Selector)

    目录 NIO(一.概述) NIO(二.Buffer) NIO(三.Channel) NIO(四.Selector) Selector 前面两个章节都描述了Buffer和Channel,那这个章节就描述 ...

  2. 如何记录selenium自动化测试过程中接口的调用信息

    上一篇博客,我写了python自动化框架的一些知识和粗浅的看法,在上一篇中我也给自己提出一个需求:如果记录在测试过程中接口的调用情况?提出这个需求,我觉得是有意义的.你在测试过程中肯定会遇到一些莫名其 ...

  3. 储存过程嵌套临时表同名引发的BUG?

    临时表使用:存储过程嵌套时,均创建了相同名称的临时表. create procedure SP_A ( @i int output )asbegin create table #t ( ta int ...

  4. 微信web开发者工具使用

    1.首先启动微信web开发者工具, 2.启动之后,点击移动端调试, 3.选择普通调试,然后,将手机和电脑置于同一个网段之中,可以通过电脑发出一个wifi,让手机连入就行 4.如果,电脑室台式机的话,没 ...

  5. css3动画知识点

    杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 <!DOCTYPE html><html><head><style> div{width:100px;h ...

  6. jQuery购物车

    效果图 HTML代码:(非表格方式) <div class="nav2"> <input type="checkbox" class=&quo ...

  7. SSH程序框架的整合(1)

    spring整合hibernate 有两种方式 1.注解方式 2.xml方式实现 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory ...

  8. 使用EPPlus读写xlsx文件

    朋友有个需求,想对N张excel表做过滤和合并的处理,拜托我写个小程序.因为用户的背景是非专业用户,因此最好的选择是写个GUI程序,再加上读写excel的需求,所以我的首选就是C#的WinForm了. ...

  9. poptest老李谈动态口令原理

    poptest老李谈动态口令原理     poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908 ...

  10. 老李分享:Android性能优化之内存泄漏1

    老李分享:Android性能优化之内存泄漏   前言 对于内存泄漏,我想大家在开发中肯定都遇到过,只不过内存泄漏对我们来说并不是可见的,因为它是在堆中活动,而要想检测程序中是否有内存泄漏的产生,通常我 ...