簡體   English   中英

如何在 java 中操作數組

[英]How to manipulate an array in java

我在 java 中制作二十一點游戲,我得到一個大小為 2 的初始數組。 但是,當我想扭轉時,我想將另一張卡添加到陣列中。 但是我不能改變它的大小

 public static void userDrawCards() {
        int min = 1;
        int max = 11;

        int[] cards = new int[2];

        System.out.println("Welcome to BlackJack");

        for (int i = 0; i < cards.length; i++) {
            int random = (int) (Math.random() * (max - min + 1) + min);
            cards[i] = random;
        }
        System.out.println("Your cards are " + Arrays.toString(cards));
    }

我檢查過,它說 arraylist 會更好用。 所以我試試這個,當我嘗試得到這個時我不確定如何使用它

public static void userDrawCards() {
        int min = 1;
        int max = 11;

        List cards = new ArrayList();

        System.out.println("Welcome to BlackJack");

        for (int i = 0; i < cards.size(); i++) {
            int random = (int) (Math.random() * (max - min + 1) + min);
            cards.set(i, random);
        }
        System.out.println("Your cards are " + cards);
    }

給我這個你的卡片是 [] 作為回應。 任何幫助都會非常感謝:)

首先,在列表中添加要使用的類型參數是一個好習慣。 在您的情況下,卡片是整數,因此請使用:

    List<Integer> cards = new ArrayList<Integer>();

這將創建一個空列表,因此它的大小為 0。這意味着您的 for 循環被完全跳過。 要解決這個問題,請聲明您想要擁有多少張卡片的一些變量:

final int amountOfCards = 10;
List<Integer> cards = new ArrayList<>(amountOfCards); // argument is optional, this is just for efficiency purposes

現在你可以有這樣的 for 循環:

for (int i = 0; i <amountOfCards; i++) {

但此時您不能使用 set 。 列表是空的,所以如果你使用 set,你會得到 IndexOutOfBoundsException。 如果要添加卡片,請使用add

cards.add(random);

或者,您可以使用cards.add([index here], random)在 position 添加

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM