总体思路及步骤:
1.创建一个HashMap集合和ArrayList集合
注明:不一定非要使用HashMap,也可以使用Hashtable。这里呢,就主要选用操作较于简单、线程不安全、易于实现的HashMap。ArrayList也是一样,可以选择其他类的,比如线程安全、效率低的Vector和线程不安全、效率高的LinkedList。
2.创建两个数组,一个用来存储花色,另一个用来存储数字
3.用嵌套for的方式,将两者组合在一起(注意:这里用的是contact方法,必须要把数字那个放在第一个循环上,第二个for循环上放花色,不然无法齐牌(洗牌--->发牌--->齐牌))
4.创建TreeSet集合(因为齐牌需要顺序,就是说同样大小的牌整理在一起,而且存进去TreeSet只是牌的索引值,所以利用TreeSet属性--自然排序,所以达到了齐牌的效果)
5.从0开始往HashMap里存储键和值,并在ArrayList里存储索引值
6.洗牌(用Collections的shuffle方法,将ArrayList的对象里的序号打乱,达到洗牌目的)
7.发牌(为了保证有序,就用前面的TreeMap接收)
8.看牌(自己写一个看牌的方法----eg:遍历输出)
9.写一个随机数:判断谁是地主
本人是java的初学者,如有错误和建议,望各位多多包涵和指教~
结果图:
主要思考思路:用映射的思想来达到做出一副扑克,也就是TreeMapping方法。再在存储键值对的时候存储对应的索引,用于洗牌发牌,在用TreeSet方法的属性(有序、无重复)达到齐牌的目的。