java - 如何使用迭代器从 1 个 ArrayList 对象创建 4 个 ArrayList 对象(对于每个对象)

标签 java arraylist iterator playing-cards

我实际上有一副 52 张牌,想知道如何将牌发给 4 手。 例如,如果这是一场真正的纸牌游戏,并且每个玩家都有一手牌,那么他们的手牌将有 52/4 (13) 张牌。

我已经创建了牌组和手牌类并生成了构造函数,以便它们正确初始化,但是我将如何使用迭代器依次将每张牌发给每手牌

我研究过迭代器,但找不到合适的应用程序

下面是牌组和手牌类的构造函数

private ArrayList<Card> deck;

    public Deck() {
        deck = new ArrayList<>(52);
        for (int i = 0; i < 52; i++)
            deck.add(new Card(value, suit);
    }
<小时/>
private ArrayList<Card> hand;

    public Hand() {
        hand = new ArrayList<>();
    }

最佳答案

我认为你不需要迭代。您可以使用subList为此。

Collections.shuffle(deck);
List<Card> hand1 = deck.subList(0, 13);
List<Card> hand2 = deck.subList(13, 26);
List<Card> hand3 = deck.subList(26, 39);
List<Card> hand4 = deck.subList(39, 52);

这可以概括为返回 List<List<Card>> 的方法。带循环。

关于java - 如何使用迭代器从 1 个 ArrayList 对象创建 4 个 ArrayList 对象(对于每个对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27932099/

相关文章:

java - 如何在 ListIterator(反向)迭代期间正确添加对象?

java - 无法使用通配符泛型类型向 Java 集合添加值

java - 100% 准确的 key,value HashMap

java - 如何将包图标添加到数组列表中

scala - 如何在 Scala 的 map 中访问列表的元组?

java - 我将如何迭代自定义对象列表,比较列表中的情侣并根据特定条件删除?

java - 使用其他类(class)的 NFC Activity

java - 在 JOOQ/PostgreSQL 中使用自定义类型更新字段

JAVA:在数组列表中搜索项目仅返回第一项

java - 为什么循环将 ArrayList 中添加的项目加倍