我正在尝试使用Java 8中的新Stream API生成随机数组的整数。但我还没有清楚地理解这个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();
但是这段代码返回了一些对象。这有什么问题?
答案 0 :(得分:37)
只需使用Random.ints即可返回IntStream:
int[] array = new Random().ints(limit, low, high).toArray();
答案 1 :(得分:5)
没有理由boxed()
。只需收到Stream
作为int[]
。
int[] array = intStream.limit(limit).toArray();
答案 2 :(得分:3)
您可以使用ThreadLocalRandom
。
int[] randInts = ThreadLocalRandom.current().ints().limit(100).toArray();
答案 3 :(得分:2)
要生成0到350范围内的随机数,将结果限制为10,并作为List收集。后来它可能被强制转换。
但是,对于返回的List的类型,可变性,可序列化或线程安全性没有任何保证。
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();