作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 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/
我是一名优秀的程序员,十分优秀!