1. 程式人生 > 實用技巧 >鬥地主JDK1.9中Map集合of用法

鬥地主JDK1.9中Map集合of用法

package cn.edu.ccut.four;

import java.util.*;

public class DouDiZhu {
    public static void main(String[] args) {
        //1、準備牌
        //建立一個Map集合,儲存索引和組裝好牌
        HashMap<Integer,String> puke=new HashMap<>();
        //建立list集合儲存索引
        ArrayList<Integer> pukeIndex= new ArrayList<>();
        
//定義兩個陣列,一個數組儲存牌的花色,一個數組儲存牌的序號 List<String> colors= List.of("♠","♥","♣","♦"); List<String> numbers = List.of("2","A","K","Q","J","10","9","8","7","6","5","4","3"); //大王小王存入 int index = 0; puke.put(index,"大王"); index++; puke.put(index,"小王"); pukeIndex.add(index); index
++; for (String number : numbers) { for (String color : colors) { puke.put(index,color+number); pukeIndex.add(index); index++; } } /*System.out.println(puke); System.out.println(pukeIndex);*/ Collections.shuffle(pukeIndex);
//發牌 ArrayList<Integer> player01 = new ArrayList<>(); ArrayList<Integer> player02 = new ArrayList<>(); ArrayList<Integer> player03 = new ArrayList<>(); ArrayList<Integer> dipai = new ArrayList<>(); for (int i = 0; i < pukeIndex.size(); i++) { Integer in = pukeIndex.get(i); if (i>=51){ dipai.add(in); }else if(i%3==0){ player01.add(in); }else if(i%3==1){ player02.add(in); }else if(i%3==2){ player03.add(in); } } //排序 Collections.sort(player01); Collections.sort(player02); Collections.sort(player03); Collections.sort(dipai); //看牌 lookpuke("張飛",puke,player01); lookpuke("關羽",puke,player02); lookpuke("劉備",puke,player03); lookpuke("底牌",puke,dipai); } //看牌,提高程式碼複用性 public static void lookpuke(String name,HashMap<Integer,String>puke,ArrayList<Integer> list){ System.out.println(name+":"); for (Integer key : list) { String value = puke.get(key); System.out.println(value+""); } System.out.println(); } }