2011-07-18 12 views
8

Mam wiele krajów. Chcę wybrać 5 losowych krajów z mojej listy tablic, ale chcę, żeby były unikatowe. To, co mam tak daleko:Wybierz losowy element z tablicy, ale unikatowy

String allCountries[] = {"Finland", "Latvia", "Poland", "Afghanistan", "Albania", "Algeria"}; 

String country1 = (allCountries[new Random().nextInt(allCountries.length)]); 
String country2 = (allCountries[new Random().nextInt(allCountries.length)]); 
String country3 = (allCountries[new Random().nextInt(allCountries.length)]); 
String country4 = (allCountries[new Random().nextInt(allCountries.length)]); 
String country5 = (allCountries[new Random().nextInt(allCountries.length)]); 

Jaki jest najlepszy sposób, aby porównać te ciągi podczas generowania losowych elementów?

Edit:

wyraziłem się źle. Problem polega na tym, że nie chcę, aby ciąg country1, country 2 itd. Był taki sam ... więc chcę, żeby zawsze były inne.

Rozwiązanie:

Collections.shuffle(Arrays.asList(allCountries)); 
+3

Nie ** chcesz, aby były unikatowe? Jeśli tak, dlaczego musisz je porównać, to, co powinieneś, powinno działać dobrze. –

+0

Twój tytuł i pytanie są w konflikcie. Czy ty lub nie chcesz wyjątkowy? – Perception

+0

Ty nie lub nie? Proszę wyjaśnić sprzeczny tytuł. – adarshr

Odpowiedz

18

rekonfigurację tablicę i pokroić pierwszych 5 elementów.

Gwarantuje to 5 unikalnych elementów losowych.

+1

Doskonały pomysł ... Dodałem również kod do mojego pytania. Dziękuję Ci :) –