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. Moving to Express 4

    http://expressjs.com/guide/migrating-4.html Moving to Express 4 Overview Express 4 is a breaking cha ...

  2. 我的Python之路【第一篇】:Python简介和入门

    1.搭建Python环境 windows下搭建python环境 1.下载安装包 2.Windows中Python的安装包是后缀名为msi的安装包,直接双击下一步即可 3.Windwos环境下默认的安装 ...

  3. Laravel Session 遇到的坑

    这两天遇到了一个很奇怪的问题,更新session ,session的值不变.经过一番追查,终于找到问题,并搞明白了原理.写这篇博客记录下. 框架版本 Laravel 5.4 问题 先来描述下问题,我在 ...

  4. XJOI1689相连的城市

    相连的城市 n个城市中,某些城市间有道路互相连接.给出与每个城市相邻的城市有多少个,请输出城市间的邻接矩阵. 输入格式: 第一行输入一个正整数n,表示城市的个数. 第二行输入n个用空格隔开的非负整数, ...

  5. JS中的bind的实现以及使用

    在讨论bind()方法之前我们先来看一道题目: var altwrite = document.write; altwrite("hello"); //1.以上代码有什么问题 // ...

  6. java中的==、equals()、hashCode()源码分析

    转载自:http://www.cnblogs.com/xudong-bupt/p/3960177.html 在Java编程或者面试中经常会遇到 == .equals()的比较.自己看了看源码,结合实际 ...

  7. [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  8. java集合基础

    集合概念与作用 1现实生活中把很多事物凑在一起就是集合.java中的集合类:是一种工具,就像是容器,存储任意数量的有共同属性的对象. 2在类的内部,对数据进行组织: 简单而快速的搜索大数量的条目 有的 ...

  9. iOS多线程的三种方法

    前言 在多线程简介中,我已经说明过了,为了提高界面的流畅度以及用户体验.我们务必要把耗时的操作放到别的线程中去执行,千万不要阻塞主线程.iOS中有以下3种多线程编程方法: NSThread Grand ...

  10. 将ImageList中的图片转化成byte数组

    Image imgwd = this.imageList1.Images["wd.png"]; var bytes = ImageToBytes(imgwd); public by ...