HashMap编写斗地主洗牌发牌案例

Map

Map接口中定义了很多方法,常用的如下:

  • public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。//增也是它,改也是它,键唯一,值覆盖,有覆盖就返回被覆盖的旧的值,没有覆盖返回null表示
  • public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
  • public V get(Object key) 根据指定的键,在Map集合中获取对应的值。如果没有键,没有值,绑定,返回null表示
  • public Set keySet(): 获取Map集合中所有的键,存储到Set集合中。即键的集合
  • public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。即键值对类的对象的集合,存的是每一个键值对对象,模拟键值对,得到每一个键和每一个值的方法,键值对类里面写了,模拟键值对,由键和值组成,自然可以得到键和得到值的方法
public class doudizhu {
    public static void main(String[] args) {
        HashMap<Integer,String> hm = new HashMap<>();
        int count = 0 ;
        hm.put(count++,"大王");
        hm.put(count++,"小王");

        ArrayList<String> color = new ArrayList();
        ArrayList<String> num = new ArrayList();
        Collections.addAll(color,"♠", "♥", "♣", "♦");
        Collections.addAll(num,"2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3");
        for (String n : num) {
            for (String c : color) {
                hm.put(count++,c+n);//1
            }
        }
        System.out.println(hm);
        Set<Integer> keySet = hm.keySet();
        ArrayList<Integer> numberlist = new ArrayList();
        numberlist.addAll(keySet);
        Collections.shuffle(numberlist);
        ArrayList list01 = new ArrayList();
        ArrayList list02 = new ArrayList();
        ArrayList list03 = new ArrayList();
        ArrayList dipai = new ArrayList();

        for (int i = 0; i <numberlist.size() ; i++) {
            Integer pernum = numberlist.get(i);
            if(i>=51){
                dipai.add(pernum);
            }else {
                if (i%3==0){
                    list01.add(pernum);
                }
                else if (i%3==1){
                    list02.add(pernum);

                }else if (i%3==2){
                    list03.add(pernum);
                }

            }
        }
        Collections.sort(list01);
        Collections.sort(list02);
        Collections.sort(list03);
        Collections.sort(dipai);
        ArrayList<String> player01= new ArrayList<>();
        ArrayList<String> player02= new ArrayList<>();
        ArrayList<String> player03= new ArrayList<>();
        ArrayList<String> dipai01= new ArrayList<>();

        for (Object s : list01) {
            player01.add(hm.get(s));
        }for (Object s : list02) {
            player02.add(hm.get(s));
        }for (Object s : list03) {
            player03.add(hm.get(s));
        }for (Object s : dipai) {
            dipai01.add(hm.get(s));
        }

        System.out.println(player01);
        System.out.println(player02);
        System.out.println(player03);
        System.out.println(dipai01);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值