》HashMap 的key底層數據結構是哈希表
》ArrayList 底層數據結構是數組,查詢快,增刪慢
》TreeSet 底層數據結構式紅黑樹(平衡二叉樹),默認構造器采用自然排序(Integer已經實現了Comparable接口 )。

package cn.itcast.day18;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.TreeSet;/* * 斗地主 發牌程序 * * A:創建HashMap<Integer,String>用于存放裝牌號和牌。 * B: 創建花色數組,創建點數數組(3最小) * B:創建ArrayList用于存放牌號 * C: 把牌號和牌放到對應的HashMap中,同時把牌號放到ArrayList中 * C:洗牌(洗牌號) * D: 發牌,遍歷ArrayList中的牌號,去HashMap中招對應的牌,用TreeSet存放牌. * E: 遍歷每一個TreeSet得到對應人的牌 */public class PokerDemo { public static void main(String[] args) { //創建牌核 HashMap<Integer,String> hm=new HashMap<Integer,String>(); //創建牌號盒 ArrayList<Integer> array=new ArrayList<Integer>(); //創建花色數組 String[] colors={"?","?","?","?"}; //創建點數數組 String[] numbers={"3","4","5","6","7","8","9","10","J","Q","K","A","2"}; //把牌號和牌存入HashMap,把牌號存入ArrayList中 int index=0; for(String number:numbers){ for(String color:colors){ String s=color.concat(number); hm.put(index,s); array.add(index); index++; } } hm.put(index, "大王"); array.add(index); index++; hm.put(index, "小王"); array.add(index); //洗牌 Collections.shuffle(array); //發牌時用TreeSet存放 TreeSet<Integer> sunWuKong=new TreeSet<Integer>(); TreeSet<Integer> zhuBaJie=new TreeSet<Integer>(); TreeSet<Integer> shaHeShang=new TreeSet<Integer>(); TreeSet<Integer> dipai=new TreeSet<Integer>(); //遍歷洗過的牌號集合ArrayList,并發牌號 for(Integer i:array){ if(array.size()-i<=3){ diPai.add(i); }else if(i%3==2){ sunWuKong.add(i); }else if(i%3==1){ zhuBaJie.add(i); }else if(i%3==0){ shaHeShang.add(i); } } lookPoker("孫悟空",sunWuKong,hm); lookPoker("豬八戒",zhuBaJie,hm); lookPoker("沙和尚",shaHeShang,hm); lookPoker("底牌",diPai,hm); } public static void lookPoker(String name,TreeSet<Integer> pai,HashMap<Integer,String> hm){ System.out.PRint(name+"的牌是 :"); for(Integer i:pai){ System.out.print(hm.get(i)+" "); } System.out.println(); }}
/*
孫悟空的牌是 :?3 ?4 ?5 ?5 ?6 ?7 ?8 ?8 ?9 ?10 ?J ?J ?Q ?K ?A ?A ?2 豬八戒的牌是 :?3 ?4 ?4 ?5 ?6 ?7 ?7 ?8 ?9 ?10 ?10 ?J ?Q ?K ?K ?A ?2 沙和尚的牌是 :?3 ?3 ?4 ?5 ?6 ?6 ?7 ?8 ?9 ?9 ?10 ?J ?Q ?Q ?K ?A ?2 底牌的牌是 :?2 大王 小王
*/
新聞熱點
疑難解答