如何使用Stream API Java 8生成随机数组的int?

时间:2014-09-11 16:56:07

标签: java arrays java-8 java-stream

我正在尝试使用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();

但是这段代码返回了一些对象。这有什么问题?

4 个答案:

答案 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();