сгенерировать 4 разных чисал
Добавлено: 07 сен 2013, 17:50
Всем привет, нужно с генерировать 4 разных числа, кто-то может помочь, потому что мой код не работает.
Добро пожаловать на форум сайта
http://forum.startandroid.ru/
Код: Выделить всё
Random rand = new Random();
int randomNumer = rand.nextInt(100);
они дожны быть еще разные все, без повторенийElek писал(а):Нужен рандом ?
Код сгенерирует число от 0 до 99.Код: Выделить всё
Random rand = new Random(); int randomNumer = rand.nextInt(100);
Код: Выделить всё
Random rand = new Random();
List<Integer> integers = new ArrayList<>(4);
for (int i = 0; i < 4; i++) {
int randNumber = rand.nextInt(5);
if(!integers.contains(randNumber)){
integers.add(randNumber);
} else {
System.out.println("There is such number in list: " + randNumber);
i--;
}
}я так и сделал, но в итоге, все равно числа повторяютсяFoenix писал(а):тю, ну поставь дальше проверку, если чесло совпало, то random еще раз!
ничего не понял, перейдя по ссылкеrezak90 писал(а):эх, молодёжИнна, не стыдно такое предлагать? Как ты думаешь сколько раз будет проверяться в таком случае? В итоге есть шанс попасть в бесконечный цикл...
Короче всё делается одной строкой: http://docs.oracle.com/javase/6/docs/ap ... il.List%29
Код: Выделить всё
// 1. Создать массив и заполнить его числами:
List<Integer> integers = new ArrayList<Integer>();
for (int i = 0; i < 20; i++) {
integers.add(i);
}
// 2. Перемешать его:
Collections.shuffle(integers);
// 3. Создать массив нужного размера для "рандомальных" чисел и заполнить его из предидущего:
int[] randomNumbers = new int[4];
for (int i = 0; i < randomNumbers.length; i++) {
randomNumbers[i] = integers.get(i);
}у листа есть метод subListElek писал(а):rezak90,
Вот так надо :
Integer[] randomIntegers = integers.toArray(new Integer[0]); ?
или по другому ? Обьясни пожалуйста