JAVA中的HashMap用法

          最近看到一篇短视频,里面就是说这个JAVA中的HashMap中的用法,举了一个很不错的例子,就是生活中常常玩的扑克牌斗地主,利用了一副新的扑克牌,所要经过的步骤,组合牌、洗牌、发牌、对玩家手中的牌进行一个排序!

         我们是有疑惑的?扑克牌中有很多不一样的花色,牌的数字大小也不是我们生活中的那样排大小的,几乎是每个人都有这样的疑问,所以我们JAVA中有一个接口可以使用--------HashMap<键值,值>。

        我先来介绍一下这个接口应该和我们这个扑克牌怎么组合使用呢,

        我们知道扑克牌中的大小不是阿拉伯数字那样比大小排序的,而是根据我们打牌的规则来指定的。有大王,小王,2,A,K,Q..

大王是最大的,小王牌老二,但是我们在程序中怎么比较呢?所以这里我们可以用数组的下标来表示大王,小王,和其它的数字,

我先说一下流程你们就会明白的,组合牌:(首先我们先将牌拿到手,然后用数组的下标表示大王,小王这些字符),

洗牌:(由于HashMap不用直接打乱它的(键值),所以我们在这里用了其他的一个数组ArratList来代替它使用,我们将花色字符串和编号字符串相加组合,将组合好的,放入HashMap中的第二个参数(值),第一个参数放的就是用编号来表示第二个参数的内容,ArrayList中的内容也和HashMap的数字一样,我们先不放大王,和小王,我们先将数字放进去和花色组合起来,最后我们只要将表示大王的数字放入HashMap和ArratList中就行了,将表示好的数字都以经放入到数组中之后,我们就要进行洗牌了,那怎么洗牌呢?我们用到了一个工具类,是专门对数组进行随机排序的,Collections.shuffle(ArrayList放入就可以随机的排序));

发牌: 发牌当然是每个玩家一张一张的拿,玩家1拿一张  玩家2拿一张  玩家3拿一张 依次类推。这些玩家拿的不是真正的牌,而是们刚打乱的数组序号,所以每个玩家拿的是数字序号,从0到53张每个人17张,这些玩家拿的是ArrayList数组中的编号,ArrayList的作用就是帮助HashMap干这事的。

显示玩家手中的牌:每一个玩家手中的牌都要依次显示,我们可以将每个玩家手中的序号查找一开始HashMap中已经组合好的字符串中的键值,我们通过键值查找值,玩家手中已经有这洗完牌的序号,然后通过这个序号和HashMap中查找,并且打印出来,这样我们就实现了。。不用的还可以私聊我!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值