Array - wypelnianie losowymi wartościami ze zbioru

0

Witam,

zaczynam z javą i tak siedzę już jakiś czas nad tym ale nie mam pojęcia jak to zrobić. Znając życie pewnie banalna rzecz a ja się głowie nad nią. Potrzebuje zdeklarowac array o długości 4, który zostanie wypełniony randomowymi wartościami. A te wartosci to: {'u','p','m','x','z','w'}.

Może jest ktos w stanie pomóc.

0

Sam się uczę, więc nie wiem czy Ci dobrze podpowiem, ale ja zrobiłbym to tak:

  1. Deklarujesz tablice char (bo rozumiem, że pisząc array z wielkością 4, masz na myśli tablice, a nie ArrayList)
  2. Deklarujesz String z wartością ""upmxzw"
  3. Tworzysz random
  4. Robisz sobie pętle for która zapełnia wartości tablicy używają chartAt by wyciągnąć znaki ze Stringa
  5. W sumie to tyle.

Poniżej zamieszczam kod, jak chcesz zajrzyj by stało się to jaśniejsze, tym bardziej, że nie potrafię dobrze tłumaczyć :)

public static void main(String[] args) {
       char [] array = new char[4];
        String letterAvailable = "upmxzw";
        Random random = new Random();
        for(int index=0; index<array.length; index++){
            array[index]=letterAvailable.charAt(random.nextInt(letterAvailable.length()));
        }
        for (char printTableForChecking: array)
            System.out.println(printTableForChecking);
        }
    }

Wada jest taka, że wartości mogą się powtarzać.
Pozdrawiam

1

Jak nie chcesz, żeby się powtarzały, możesz skorzystać z java.util.Collections#shuffle.

1

W zadaniu nie podano nic o oczekiwanym rozkładzie losowym. Można wiec sobie przyjąć dość wygodny rozkład zdegenerowany:
char [] array = new char[]{'x','x','x','x'};

0

Stwórz sobie listę ze wszystkimi wartościami, użyj Collections.shuffle i wytnij sobie pierwsze 4 wartości.

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