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...();
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...();
Losuj indeks
lista.get(generator.nextInt(3));
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.
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?
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);
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)
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));
}