web-dev-qa-db-ja.com

Stream API Java 8?を使用してintのランダム配列を生成する方法

Java 8。

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

しかし、このコードはオブジェクトの配列を返します。何が問題なのですか?

21
user3991417

Random.ints を使用するだけです。これは IntStream を返します。

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

boxed()を使用する理由はありません。 Streamint[]として受け取るだけです。

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

0から350の範囲の乱数を生成し、結果を10に制限して、リストとして収集します。後で型キャストできました。

ただし、返されるリストの型、可変性、直列化可能性、スレッドセーフ性については保証されません。

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();
3
Lakshay Gupta

ThreadLocalRandomを使用して実行できます。

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