`

java集合类的数据结构灵活应用

阅读更多

package cn.itcast_03;

import java.util.ArrayList;
import java.util.Collections;

/*
 * 模拟斗地主洗牌和发牌
 *
 * 分析:
 *   A:创建一个牌盒
 *   B:装牌
 *   C:洗牌
 *   D:发牌
 *   E:看牌
 */
public class PokerDemo {
 public static void main(String[] args) {
  // 创建一个牌盒
  ArrayList<String> array = new ArrayList<String>();

  // 装牌
  // 黑桃A,黑桃2,黑桃3,...黑桃K
  // 红桃A,...
  // 梅花A,...
  // 方块A,...
  // 定义一个花色数组
  String[] colors = { "♠", "♥", "♣", "♦" };
  // 定义一个点数数组
  String[] numbers = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10",
    "J", "Q", "K" };
  // 装牌
  for (String color : colors) {
   for (String number : numbers) {
    array.add(color.concat(number));
   }
  }
  array.add("小王");
  array.add("大王");

  // 洗牌
  Collections.shuffle(array);

  // System.out.println("array:" + array);

  // 发牌
  ArrayList<String> fengQingYang = new ArrayList<String>();
  ArrayList<String> linQingXia = new ArrayList<String>();
  ArrayList<String> liuYi = new ArrayList<String>();
  ArrayList<String> diPai = new ArrayList<String>();

  for (int x = 0; x < array.size(); x++) {
   if (x >= array.size() - 3) {
    diPai.add(array.get(x));
   } else if (x % 3 == 0) {
    fengQingYang.add(array.get(x));
   } else if (x % 3 == 1) {
    linQingXia.add(array.get(x));
   } else if (x % 3 == 2) {
    liuYi.add(array.get(x));
   }
  }

  // 看牌
  lookPoker("风清扬", fengQingYang);
  lookPoker("林青霞", linQingXia);
  lookPoker("刘意", liuYi);

  lookPoker("底牌", diPai);
 }

 public static void lookPoker(String name, ArrayList<String> array) {
  System.out.print(name + "的牌是:");
  for (String s : array) {
   System.out.print(s + " ");
  }
  System.out.println();
 }
}

测试多次
输出:

风清扬的牌是:小王 ♦8 ♥10 ♦5 ♣Q ♥4 ♣7 ♣8 ♠9 ♦A ♠4 ♥7 ♠2 ♦6 ♠7 ♥8 ♣9
林青霞的牌是:♦Q ♥5 ♥9 ♠A ♠6 ♣3 ♠Q ♦7 ♦10 ♠K ♦K ♣K ♥3 ♠10 ♠8 ♥6 ♠5
刘意的牌是:♥2 ♠3 ♥A ♠J ♥Q ♣J ♦J ♣4 ♥K ♦4 ♣6 ♣5 ♥J ♦3 ♦2 大王 ♦9
底牌的牌是:♣A ♣2 ♣10
输出:风清扬的牌是:♦2 ♠7 ♥9 ♦9 ♥3 ♥7 ♠A ♠Q ♣2 ♣4 ♠J ♦4 ♦A ♣5 ♠3 ♥K ♦5
林青霞的牌是:♥10 ♦8 ♥2 ♣Q ♣8 ♠K ♦3 ♠4 ♣7 ♠6 ♠9 ♦Q ♠10 ♣3 ♥5 小王 ♣J
刘意的牌是:♥4 ♠2 ♦J ♦7 ♦K ♥8 ♣6 ♥J ♣10 ♥A ♦10 ♠8 ♠5 ♥Q ♣9 ♥6 ♣K
底牌的牌是:♦6 大王 ♣A

先保存在这里,慢慢领悟

 

  • 大小: 7.8 KB
分享到:
评论

相关推荐

    数据结构与问题求解Java语言

    作者采用了独特的方法将数据结构分成说明和实现两部分,并充分利用了已有的数据结构库(Java集合类API)。本书分为四个部分:第一部分讨论适合大多数应用的集合类API的一个子集,并覆盖基本的算法分析技术、递归和...

    史上最全Java面试题目大集合

    引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...

    java开源包11

    使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的...

    java开源包4

    使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的...

    Java知识点总结.zip

    面试必备,java基础、java集合、JVM、Java并发、数据结构与算法、LeetCode、剑指offer、计算机网络、设计模式、MySQL、Redis Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年5月正式发布...

    java 面试题 总结

    引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...

    JAVA面试题最全集

    60.JAVA语言国际化应用,Locale类,Unicode 61.描述反射机制的作用 62.如何读写一个文件? 63.在图形界面中,一个按钮如何处理鼠标点击事件? 64.在图形界面中,一个表格,如何实现编辑单元格时弹出下拉框? ...

    超级有影响力霸气的Java面试题大全文档

    引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...

    Java课程设计之购物车课程设计.zip

    这个购物车管理程序是一个基于Java语言开发的控制台应用程序,实现了商品管理和购物车管理功能。该程序具有以下技术性优势: 1. 面向对象编程 该程序采用面向对象编程思想进行开发,将不同功能的代码封装在不同的...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    / 139 6.3.2 常量池 / 141 6.3.3 访问标志 / 147 6.3.4 类索引、父类索引与接口索引集合 / 148 6.3.5 字段表集合 / 149 6.3.6 方法表集合 / 153 6.3.7 属性表集合 / 155 6.4 Class文件结构的发展 / 168 6.5 ...

    关于JAVA面试的100题及其答案

    引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...

    Java虚拟机

    5.2.6 不恰当数据结构导致内存占用过大 5.2.7 由Windows虚拟内存导致的长时间停顿 5.3 实战:Eclipse运行速度调优 5.3.1 调优前的程序运行状态 5.3.2 升级JDK 1.6的性能变化及兼容问题 5.3.3 编译时间和类加载...

    java解析xml及4种常用解析比较

    首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。 2)SAX SAX处理的优点非常...

    javaSE代码实例

    第2章 基本数据类型——构建Java 大厦的基础 12 2.1 源代码注释 12 2.1.1 单行注释 12 2.1.2 区域注释 12 2.1.3 文档注释 13 2.2 基本数据类型 14 2.2.1 整型 15 2.2.2 浮点型 17 2.2.3 char型 17...

    C#微软培训资料

    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...

    外文翻译 stus MVC

    This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control change in your Web project and promote ...

Global site tag (gtag.js) - Google Analytics