Как манипулировать массивом в java - PullRequest
0 голосов
/ 08 мая 2020

Я делаю игру в блэкджек в java и получаю начальный массив размером два. Однако, когда я хочу скрутить, я хочу добавить еще одну карту в массив. Однако я не могу изменить его размер

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

Дайте мне это Ваши карты [] в качестве ответа. Любая помощь была бы большой спасибо :)

1 Ответ

0 голосов
/ 08 мая 2020

Прежде всего, рекомендуется добавить параметр того типа, который вы собираетесь использовать в своем списке. В вашем случае карты являются целыми числами, поэтому используйте:

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

, это создает пустой список, поэтому его размер равен 0. Это означает, что ваш for l oop полностью пропущен. Чтобы исправить это, объявите некоторую переменную того, сколько карт вы хотите иметь:

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

Теперь вы можете иметь l oop вот так:

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

но вы не можете используйте набор на этом этапе. Список пуст, поэтому, если вы используете set, вы получите исключение IndexOutOfBoundsException. Если вы хотите добавить карты, используйте добавить :

cards.add(random);

в качестве альтернативы вы можете добавить в позицию, используя cards.add([index here], random)

...