在Java中隔离哈希集中的某个元素

在Java中隔离哈希集中的某个元素,java,set,element,poker,Java,Set,Element,Poker,我正在做一个扑克游戏,为了生成一个包含非重复的手牌,我决定使用HashSet和for循环给玩家5张牌 public class CardDriver { public static void main(String[] args) { Set<Card> hands = new HashSet<Card>(); while(hands.size()!= 5) { hands.add(new Card()

我正在做一个扑克游戏,为了生成一个包含非重复的手牌,我决定使用HashSet和for循环给玩家5张牌

public class CardDriver {

    public static void main(String[] args) {

        Set<Card> hands = new HashSet<Card>();

        while(hands.size()!= 5) {
            hands.add(new Card());
        }

        System.out.println("Player 1: " + hands);



    }   
}
我面临着三个问题,我相信一旦我弄清楚如何从玩家手中分离出某些元素,这两个问题都可以解决

首先,我需要使用相同的哈希集再给第二个玩家5张牌,以此类推。例如,我会让集合中的元素1-5转到玩家1,6-10转到玩家2

此外,通过能够将一张卡从集合中分离出来,它还将使我能够替换一张卡视频扑克

最后,我认为通过能够隔离用户手中的每张牌,我可以更容易地分析每个玩家手中的牌的价值。我在使用集合方面不是很有经验,所以也许使用数组更好

编辑:输出的示例:
玩家1:[红桃三张,梅花之王,梅花十张,黑桃二张,红桃王牌]

我不明白你孤立一张牌是什么意思。你是否考虑过构建一个牌组对象,并根据需要简单地处理每一手牌?另外,如果Suite和Value是枚举,那么只需执行Suite.values为什么不使用一个名为。。。牌组,该类将包含52张牌,每一张牌中有一张,当发出一张牌时,它将从牌组转移到牌组中的一个元素。例如,如果我的输出是玩家1:[红桃三张、梅花之王、梅花十张、黑桃二张、红桃王牌],我希望能够将梅花十张换成另一张牌,或者我只想显示最后三张牌,而不是所有的五张牌,在你关心手部位置的情况下,例如最后三张牌,那么,数组比集合更好,这是对的,因为可以使用数组索引引用它们。
public Card() {

        Random nb = new Random();
        int switchNb = nb.nextInt(13) + 1;

        switch(switchNb)
        {
        case 1: value = Value.Ace; break;
        case 2: value = Value.Two; break;

        ....

        case 11: value = Value.Jack; break;
        case 12: value = Value.Queen; break;
        case 13: value = Value.King; break;
        }

        switchNb = nb.nextInt(4) + 1;

        switch(switchNb)
        {
        case 1: suite = Suite.Hearts; break;
        case 2: suite = Suite.Diamonds; break;
        case 3: suite = Suite.Clubs; break;
        case 4: suite = Suite.Spades; break;
        }


    }