gpt4 book ai didi

java - 如何在java中操作数组

转载 作者:行者123 更新时间:2023-12-01 16:51:18 25 4
gpt4 key购买 nike

我用 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));
}

我检查过,它说使用数组列表会更好。所以我尝试这个但我不确定如何使用它当我尝试时我得到了这个

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)在位置添加

关于java - 如何在java中操作数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61682072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com