it-swarm.com.ru

Как сгенерировать случайный массив целых, используя Stream API Java 8?

Я пытаюсь сгенерировать случайный массив целых чисел, используя новый API-интерфейс Stream в 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();

Но этот код возвращает массив объектов. Что с этим не так?

19
ketazafor

Просто используйте Random.ints , который возвращает IntStream :

int[] array = new Random().ints(limit, low, high).toArray();
37
Jean Logeart

Там нет причин для boxed(). Просто получите Stream как int[].

int[] array = intStream.limit(limit).toArray();
5
Sotirios Delimanolis

Вы можете сделать это, используя ThreadLocalRandom.

int[] randInts = ThreadLocalRandom.current().ints().limit(100).toArray();
3
zeronone

Для генерации случайных чисел в диапазоне от 0 до 350, ограничения результата до 10, и сбора в виде списка. Позже это может быть напечатано.

Тем не менее, нет никаких гарантий относительно типа, изменчивости, сериализуемости или безопасности потока возвращаемого списка.

List<Object> numbers =  new Random().ints(0,350).limit(10).boxed().collect(Collectors.toList());

и получить массив использования int 

int[] numbers =  new Random().ints(0,350).limit(10).toArray();
2
Lakshay Gupta