Jak wylosować String z ArrayList?

0

Mam 3 stringi: kamień, papier, nożyce, które są w ArrayList.
Jak wylosować String z ArrayList?

Próbowałem w ten sposób, ale to chyba dotyczy tylko liczb:
Random generator = new Random();
String computerChoice = generator.next...();

1

Losuj indeks

lista.get(generator.nextInt(3));
0

Z listy możesz wyciągać na podstawie indeksu. Pobierz ile masz elementów w liście i wylosuj liczbę z przedziału <0;długośćListy> a następnie po prostu pobierz ten element.

0

Dzięki o to mi chodziło :)

Chciałbym żeby jeszcze użytkownik wpisał ze skanera numer np 1 - nożyczki, 2 - kamień.

String yourChoice = (String) list.get(input.nextInt(3));

Tylko wtedy gdy wciskam 1, wybiera mi pozycję 0 z ArrayList. Jak to zrobić żeby ArrayList zaczynała się od elementu pierwszego, a nie zerowego?

0

ArrayList będzie się zawsze zaczynała od zero, ponieważ tak są indeksowane elementy w większości kolekcji. Za to nic nie stoi na przeszkodzie, żebyś pobrał od użytkownika "1", "2" lub "3" i pomniejszył tę wartość o 1 przed podstawieniem.

String yourChoice = (String) list.get(input.nextInt(3)-1);

0

Działa świetnie jeśli użytkownik wciśnie 1 lub 2, ale gdy 3 to:

Exception in thread "main" java.util.InputMismatchException: For input string: "3"
at java.util.Scanner.nextInt(Unknown Source)

0
        List<String> lista = new ArrayList<>();
        lista.add("Papier");
        lista.add("Kamień");
        lista.add("Nożyce");

        for(int i = 1; i <= 10; i++) {
            int randomNumer = 0 + (int)(Math.random() * 3);
            System.out.println("Za " + i + " razem, wylosowałem index: " + randomNumer + " czyli " + lista.get(randomNumer));
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1