J'essaie de générer un tableau aléatoire d'entiers à l'aide de la nouvelle API Stream en Java 8. Mais je n'ai pas encore compris cette API. J'ai donc besoin d'aide. Voici mon 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();
Mais ce code retourne un tableau d'objets. Qu'est-ce qui va pas avec ça?
Utilisez simplement Random.ints qui retourne un IntStream :
int[] array = new Random().ints(limit, low, high).toArray();
Il n'y a aucune raison de boxed()
. Il suffit de recevoir la Stream
en tant que int[]
.
int[] array = intStream.limit(limit).toArray();
Vous pouvez le faire en utilisant ThreadLocalRandom
.
int[] randInts = ThreadLocalRandom.current().ints().limit(100).toArray();
Pour générer des nombres aléatoires allant de 0 à 350, en limitant le résultat à 10, et les collecter sous forme de liste. Plus tard, il pourrait être catalogué.
Cependant, il n'y a aucune garantie sur le type, la mutabilité, la sérialisabilité ou la sécurité des threads de la liste renvoyée.
List<Object> numbers = new Random().ints(0,350).limit(10).boxed().collect(Collectors.toList());
et pour avoir le sens de l'utilisation int
int[] numbers = new Random().ints(0,350).limit(10).toArray();