zoukankan      html  css  js  c++  java
  • Java学习之利用集合发牌小练习

    /*
    * 思路:
    * A:创建一个HashMap集合
    * B:创建一个ArrayList集合
    * C:创建花色数组和点数数组
    * D:从0开始往HashMap里面存储编号,并存储对应的牌同时往ArrayList里面存储编号即可。
    * E:洗牌(洗的是编号)
    * F:发牌(发的也是编号,为了保证编号是排序的,就创建TreeSet集合接收)
    * G:看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
    */

     1 package com.swust.集合;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collections;
     5 import java.util.HashMap;
     6 import java.util.List;
     7 import java.util.Map;
     8 import java.util.Set;
     9 import java.util.TreeSet;
    10 
    11 public class Example4 {
    12     public static void main(String[] args) {
    13         puKe();
    14     }
    15     public static void puKe(){
    16         /**
    17          * 装牌
    18          */
    19         String[] strings = {"♦","♣","♠","♥"};
    20         String[] number ={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
    21         Map<Integer,String> map = new HashMap<Integer,String>();
    22         List<Integer> newList = new ArrayList<Integer>();
    23         int index = 0;
    24         /**
    25          * 错误原因:未考虑牌数递增情况,自始至终只有十三张牌
    26          */
    27         for(String var : number){
    28             for(String color : strings){
    29                 String string = color.concat(var);
    30                 map.put(index, string);
    31                 newList.add(index);
    32                 index++;
    33             }
    34         }
    35         map.put(index, "小王");
    36         newList.add(index);
    37         index++;
    38         map.put(index, "大王");
    39         newList.add(index);
    40         index++;
    41         
    42         /**
    43          * 洗牌
    44          */
    45         Collections.shuffle(newList);
    46         
    47         /**
    48          * 发牌 
    49          */
    50         Set<Integer> seta = new TreeSet<Integer>();
    51         Set<Integer> setb = new TreeSet<Integer>();
    52         Set<Integer> setc = new TreeSet<Integer>();
    53         Set<Integer> setd = new TreeSet<Integer>();
    54         
    55         for(int i=0;i<newList.size();i++){
    56             if(i>=newList.size()-3){
    57                 setd.add(newList.get(i));
    58             }else if(i%3==0){
    59                 seta.add(newList.get(i));
    60             }else if(i%3==1){
    61                 setb.add(newList.get(i));
    62             }else if(i%3==2){
    63                 setc.add(newList.get(i));
    64             }
    65         }
    66 
    67         lookUp(map,setb);
    68     }
    69     public static void lookUp(Map<Integer,String> map,Set<Integer> set){
    70         for(Integer var : set){
    71             System.out.print(map.get(var)+" ");
    72         }
    73     }
    74 }
  • 相关阅读:
    判断IE浏览器的版本号
    解决下拉框第一行出现空格的问题
    Springboot整合log4j2日志全解
    Java NIO之Selector(选择器)
    ZooKeeper客户端 zkCli.sh 节点的增删改查
    Java API操作ZooKeeper
    ReentrantLock(重入锁)功能详解和应用演示
    MySQL高可用集群方案
    Redis高可用之集群配置(六)
    linux free命令详解
  • 原文地址:https://www.cnblogs.com/sunfie/p/4811454.html
Copyright © 2011-2022 走看看