Java基础:Collections集合、Map集合综合案例

//1.4 分别给花色 以及 数字集合添加元素

colors.add(“♥”);

colors.add(“♦”);

colors.add(“♠”);

colors.add(“♣”);

for(int i = 2;i<=10;i++){

numbers.add(i+“”);

}

numbers.add(“J”);

numbers.add(“Q”);

numbers.add(“K”);

numbers.add(“A”);

//1.5 创造牌 拼接牌操作

// 拿出每一个花色 然后跟每一个数字 进行结合 存储到牌盒中

for (String color : colors) {

//color每一个花色

//遍历数字集合

for(String number : numbers){

//结合

String card = color+number;

//存储到牌盒中

pokerBox.add(card);

}

}

//1.6大王小王

pokerBox.add(“小☺”);

pokerBox.add(“大☠”);

// System.out.println(pokerBox);

//洗牌 是不是就是将 牌盒中 牌的索引打乱

// Collections类 工具类 都是 静态方法

// shuffer方法

/*

  • static void shuffle(List<?> list)

  • 使用默认随机源对指定列表进行置换。 
    

*/

//2:洗牌

Collections.shuffle(pokerBox);

//3 发牌

//3.1 创建 三个 玩家集合 创建一个底牌集合

ArrayList player1 = new ArrayList();

ArrayList player2 = new ArrayList();

ArrayList player3 = new ArrayList();

ArrayList dipai = new ArrayList();

//遍历 牌盒 必须知道索引

for(int i = 0;i<pokerBox.size();i++){

//获取 牌面

String card = pokerBox.get(i);

//留出三张底牌 存到 底牌集合中

if(i>=51){//存到底牌集合中

dipai.add(card);

} else {

//玩家1 %3 ==0

if(i%3==0){

player1.add(card);

}else if(i%3==1){//玩家2

player2.add(card);

}else{//玩家3

player3.add(card);

}

}

}

//看看

System.out.println(“令狐冲:”+player1);

System.out.println(“田伯光:”+player2);

System.out.println(“绿竹翁:”+player3);

System.out.println(“底牌:”+dipai);

}

}

Map

==============================================================

案例介绍


按照斗地主的规则,完成

在这里插入图片描述

按照斗地主的规则,完成洗牌发牌的动作。

具体规则:

  1. 组装54张扑克牌将

  2. 54张牌顺序打乱

  3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。

  4. 查看三人各自手中的牌(按照牌的大小排序)、底牌

规则:手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3

案例需求分析


  1. 准备牌:

完成数字与纸牌的映射关系:

使用双列Map(HashMap)集合,完成一个数字与字符串纸牌的对应关系(相当于一个字典)。

  1. 洗牌:

通过数字完成洗牌发牌

  1. 发牌:

将每个人以及底牌设计为ArrayList,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。

存放的过程中要求数字大小与斗地主规则的大小对应。

将代表不同纸牌的数字分配给不同的玩家与底牌。

  1. 看牌:

通过Map集合找到对应字符展示。

通过查询纸牌与数字的对应关系,由数字转成纸牌字符串再进行展示。

在这里插入图片描述

实现代码步骤


public class Poker {

public static void main(String[] args) {

/*

  • 1组装54张扑克牌

*/

// 1.1 创建Map集合存储

HashMap<Integer, String> pokerMap = new HashMap<Integer, String>();

// 1.2 创建 花色集合 与 数字集合

ArrayList colors = new ArrayList();

ArrayList numbers = new ArrayList();

// 1.3 存储 花色 与数字

Collections.addAll(colors, “♦”, “♣”, “♥”, “♠”);

Collections.addAll(numbers, “2”, “A”, “K”, “Q”, “J”, “10”, “9”, “8”, “7”, “6”, “5”, “4”,

“3”);

// 设置 存储编号变量

int count = 1;

pokerMap.put(count++, “大王”);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。

《Java高级面试》

《Java高级架构知识》

《算法知识》

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
着来学习,查漏补缺。

《Java高级面试》

[外链图片转存中…(img-BlOZMpQC-1712123301349)]

《Java高级架构知识》

[外链图片转存中…(img-M3iuuwUf-1712123301349)]

《算法知识》

[外链图片转存中…(img-99mfB74x-1712123301349)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值