思路
  • 创立一个HashMap汇合用于记录54张牌

    • {0=♥2, 1=♦2, 2=♣2, 3=♠2, 4=♥3, 5=♦3, ... , 50=♣A, 51=♠A, 52=大王, 53=小王}
  • HashMap汇合的key值记录54张牌的程序
  • 创立一个一般ArrayList汇合用于记录54个数字,对应HashMap的54个Key值
  • 打乱整个ArrayList汇合(洗牌)
  • 创立四个TreeSet汇合(三个玩家汇合和底牌汇合),依照一人一张的程序别离将张牌的Key值存入三个玩家汇合中,最初三张非凡解决存入底牌汇合。

    • 应用TreeSet汇合存牌的起因是因为TreeSet汇合自带排序功能。
  • 依据四个TreeSet汇合记录的Key值获取HashM汇合中映射的value值
代码
package com.collection;import java.util.*;public class PokerTest {    public static void main(String[] args) {        String decor[] = {"♥", "♦", "♣", "♠"};        String number[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};        HashMap<Integer, String> cards = new HashMap<Integer, String>();        int num = 0;        for (int j = 0; j < number.length; j++) {            for (int i = 0; i < decor.length; i++) {                cards.put(num++, decor[i] + number[j]);            }        }        cards.put(52, "大王");        cards.put(53, "小王");        ArrayList<Integer> cards_index = new ArrayList<>();        for (int i = 0; i < 54; i++) {            cards_index.add(i);        }        Collections.shuffle(cards_index);        TreeSet<Integer> player1 = new TreeSet<Integer>();        TreeSet<Integer> player2 = new TreeSet<Integer>();        TreeSet<Integer> player3 = new TreeSet<Integer>();        TreeSet<Integer> hole_cards = new TreeSet<Integer>();        for (int i = 0; i < cards_index.size(); i++) {            if (i >= 51) {                hole_cards.add(cards_index.get(i));            } else if (i % 3 == 0) {                player1.add(cards_index.get(i));            } else if (i % 3 == 1) {                player2.add(cards_index.get(i));            } else if (i % 3 == 2) {                player3.add(cards_index.get(i));            }        }        System.out.println("Player1--------");        for (Integer i1 : player1) {            System.out.print(cards.get(i1) + "\t");        }        System.out.println("\nPlayer2--------");        for (Integer i2 : player2) {            System.out.print(cards.get(i2) + "\t");        }        System.out.println("\nPlayer3--------");        for (Integer i3 : player3) {            System.out.print(cards.get(i3) + "\t");        }        System.out.println("\nHole Cards--------");        for (Integer i4 : hole_cards) {            System.out.print(cards.get(i4) + "\t");        }    }}/*    Player1--------    ♠2    ♣3    ♥4    ♣6    ♣7    ♠7    ♥8    ♠8    ♣9    ♥10    ♣10    ♣J    ♥Q    ♦Q    ♥K    ♥A    ♦A        Player2--------    ♦3    ♣4    ♦5    ♣5    ♥6    ♦6    ♠6    ♦7    ♣8    ♥9    ♦9    ♥J    ♠J    ♣K    ♠A    大王    小王        Player3--------    ♥2    ♣2    ♥3    ♠3    ♦4    ♠4    ♥5    ♦8    ♠9    ♦10    ♠10    ♦J    ♣Q    ♠Q    ♦K    ♠K    ♣A        Hole Cards--------    ♦2    ♠5    ♥7    */