web-dev-qa-db-de.com

Wie kann ein zufälliges Array von Ints mit Stream API Java 8 erstellt werden?

Ich versuche, ein zufälliges Array von Ganzzahlen mithilfe der neuen Stream-API in Java 8 zu generieren. Aber ich habe diese API noch nicht klar verstanden. Also brauche ich Hilfe. Hier ist mein Code. 

Random random = new Random();
IntStream intStream = random.ints(low, high);
int[] array =  intStream.limit(limit) // Limit amount of elements
                                    .boxed() // cast to Integer
                                    .toArray();

Dieser Code gibt jedoch ein Array von Objekten zurück. Was ist daran falsch?

19
ketazafor

Verwenden Sie einfach Random.ints , das einen IntStream zurückgibt:

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

Es gibt keinen Grund zu boxed(). Erhalten Sie einfach die Stream als int[].

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

Sie können dies mit ThreadLocalRandom tun.

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

Um Zufallszahlen zwischen 0 und 350 zu generieren, das Ergebnis auf 10 zu begrenzen und als Liste zu sammeln. Später konnte es typisiert werden.

Es gibt jedoch keine Gewähr für Typ, Veränderlichkeit, Serialisierbarkeit oder Threadsicherheit der zurückgegebenen Liste.

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

und, um den Integer zu nutzen 

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