[英]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.