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?
Verwenden Sie einfach Random.ints , das einen IntStream zurückgibt:
int[] array = new Random().ints(limit, low, high).toArray();
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();
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();