package com.henu;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class Demo04_斗地主_制牌_洗牌_发牌_有序 {public static void main(String[] args) {String[] nums = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};String[] color = {"♥","♦","♠","♣"};//定义map存储所有牌,采用它的key为后期的每个人的手牌排序做准备Map<Integer, String> hMap = new HashMap<>();//list存取序号,相当于map的key值。List<Integer> cardId = new ArrayList<Integer>();int count = 1;//双重循环将牌存入到map中,注意外内循环的不同数组,为了后续的排序for (String str1 : nums) {for (String str2 : color) {cardId.add(count);hMap.put(count++, str2+str1);}}hMap.put(53, "小♋");hMap.put(54, "大♋");cardId.add(53);cardId.add(54);//将牌的序号进行打乱Collections.shuffle(cardId);//定义三个玩家List<Integer> xiaoTeng = new ArrayList<>();List<Integer> xiaoYun = new ArrayList<>();List<Integer> xiaoHong = new ArrayList<>();List<Integer> diPai = new ArrayList<>();//发牌for (int i = 0; i < cardId.size(); i += 3) {if (i < cardId.size()-3) {xiaoTeng.add(cardId.get(i));xiaoYun.add(cardId.get(i+1));xiaoHong.add(cardId.get(i+2));}else {diPai.add(cardId.get(i-1));diPai.add(cardId.get(i));diPai.add(cardId.get(i+1));}}//输出结果System.out.println("小腾的牌是:"+toCard(xiaoTeng, hMap));System.out.println("小云的牌是:"+toCard(xiaoYun, hMap));System.out.println("小宏的牌是:"+toCard(xiaoHong, hMap));System.out.println("底牌的牌是:"+toCard(diPai, hMap));}//根据list的序号取map的value;即根据序号对map的 牌进行取,得到的即是排序好的纸牌。public static List<String> toCard(List<Integer> user,Map<Integer, String> hMap){//现将抽到的牌进行排序Collections.sort(user);//根据序号取到牌List<String> userCard = new ArrayList<>();for (Integer in : user) {userCard.add(hMap.get(in));}return userCard;}}

结果输出:

java基础--集合案例斗地主发牌排序相关推荐

  1. java斗地主发牌代码_[Java源码]扑克牌——斗地主发牌实现

    --------------------------------------- --------------------------------------- ----------一个扑克牌核心和简单 ...

  2. java斗地主发牌_[Java源码]扑克牌——斗地主发牌实现

    --------------------------------------- --------------------------------------- ----------一个扑克牌核心和简单 ...

  3. java基础—集合框架

    java基础-集合框架 JDK1.2开始引入了集合框架的概念,以弥补java中只有数组这种容器的单一问题,这些框架多数由接口构成,另外也包含了一些对于接口实现的类,其中这些接口的最上层接口为java. ...

  4. java基础与案例开发详解 pdf下载_Java基础与案例开发详解(张孝祥) pdf_IT教程网...

    资源名称:Java基础与案例开发详解(张孝祥) pdf 第1.2和3章介绍Java环境的安装配置,Java程序的开发过程和Java语言的基础语法. 第4章介绍数组和常用算法的相关知识. 第5章和6章介 ...

  5. java中使用集合模拟斗地主发牌的两种排序(根据大小或者花色)

    第一种排序 根据花色,把相同的花色排到一起,然后将其花色一样的再进行排序 第一种排序参照代码中all()方法 第二种排序 真实的模拟斗地主游戏的排序玩法,即按照大王(这里用的是JOKER)joker2 ...

  6. java基础——轻轻松松控制台斗地主

    实现在控制台斗地主 今天给大家一起分享一下,最近回头学习java基础实现的一个控制台版的斗地主.先给大家简单看一下要求: 有地主,有2个农民,地主有额外3张牌. 游戏开始时,显示地主的牌,并从控制台接 ...

  7. Java基础—集合2Set接口和Map接口

    第一讲 Set 一 概述 Set:1. 元素存储无下标,所以元素是无序(存入和取出的顺序不一定一致) 2. 元素不可以重复 |--HashSet:底层数据结构是哈希表.线程不同步. 保证元素唯一性的原 ...

  8. Java基础-------集合框架

    一,集合简介 1.1 集合由来: 对象的存储:①数组(基本数据类型  & 引用数据类型)  ②集合(引用数据类型)     >数组存储数据的弊端:长度一旦初始化以后,就不可变:真正给数组 ...

  9. 斗地主Java课程设计_Java斗地主发牌课程设计

    本文实例为大家分享了Java斗地主发牌的具体代码,供大家参考,具体内容如下 Player类 public class Player { // 玩家姓名 private String name1; pr ...

最新文章

  1. java 注解 payload_spring – 如何使用注释配置PayloadValidatingInterceptor
  2. vmboxcentos安装重启又要安装_Windows 10八月更新再遇尴尬:安装失败 或安装后随机重启...
  3. 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)...
  4. spingmvc的一些简单理解和记录
  5. 【已解决】Android 如何让应用在后台运行
  6. 个人信息安全影响评估指南_发布 | 网络安全标准实践指南—移动互联网应用程序(App)收集使用个人信息自评估指南...
  7. Android之switch控件的用法
  8. centos7删除文件命令_干货 | 玩转云文件存储——利用CFS实现web应用的共享访问...
  9. 最优化学习笔记(十二)——基本共轭方向算法(续)
  10. 16 张图解带你掌握一致性哈希算法
  11. 【转载】前端开发之CSS兼容写法经验总结
  12. poj 2728 Desert King 01分数规划
  13. 【JAVA】doc,excel,等转pdf,swf
  14. Qt Quick Controls
  15. O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)
  16. 解决uniapp静态文件字体包太大打包大小超出限制
  17. 【CS231n assignment 2022】Assignment 2 - Part 1,全连接网络的初始化以及正反向传播
  18. 灵魂拷问:嵌入式行业真的没前途吗?
  19. python办公自动化用openpyxlpandasnumpy_openpyxl3.0.3 中文手册--Pandas 和 NumPy
  20. 2022年上海市徐汇区创新型中小企业名单公示

热门文章

  1. 中石油训练赛 - Switches(高斯消元求逆矩阵+逆矩阵求线性方程组)
  2. CodeForces - 1333D Challenges in school №41(构造+模拟)
  3. HYSBZ - 2342 双倍回文(回文自动机)
  4. HDU - 5371 Hotaru's problem(马拉车+暴力)
  5. SPOJ - DQUERY D-query(莫队/线段树+离线/主席树)
  6. 牛客 - 双流机场(思维)
  7. UVA - 1415 Gauss Prime(高斯素数)
  8. UVA - 12569 Planning mobile robot on Tree (EASY Version) BFS
  9. EOJ_1082_Virtual Friends
  10. 基于java的餐饮管理系统_基于java的餐饮管理系统