Ответ 1
Просто используйте Random.ints, который возвращает IntStream:
int[] array = new Random().ints(limit, low, high).toArray();
Я пытаюсь создать случайный массив целых чисел, используя новый Stream API в Java 8. Но я еще не понял этот API. Поэтому мне нужна помощь. Вот мой код.
Random random = new Random();
IntStream intStream = random.ints(low, high);
int[] array = intStream.limit(limit) // Limit amount of elements
.boxed() // cast to Integer
.toArray();
Но этот код возвращает массив объектов. Что с ним не так?
Просто используйте Random.ints, который возвращает IntStream:
int[] array = new Random().ints(limit, low, high).toArray();
Нет причин для boxed()
. Просто получите Stream
как int[]
.
int[] array = intStream.limit(limit).toArray();
Вы можете сделать это, используя ThreadLocalRandom
.
int[] randInts = ThreadLocalRandom.current().ints().limit(100).toArray();
Чтобы генерировать случайные числа из диапазона от 0 до 350, ограничивая результат до 10 и собирать в виде списка. Позже это можно было бы придумать.
Тем не менее, нет никаких гарантий относительно типа, изменчивости, сериализуемости или безопасности потоков возвращаемого списка.
List<Object> numbers = new Random().ints(0,350).limit(10).boxed().collect(Collectors.toList());
и получить значение int use
int[] numbers = new Random().ints(0,350).limit(10).toArray();