ランダムは、重複することなく、ストリームおよびソートのJavaについての質問を使用して

新エンドウ:

私は、ストリームを使用してランダムな8 int型を取得しようとしていますが、以下のコードに問題があるという明確な()を削除し、重複重複があった場合、私に8 INTを与えないであろうが。

ゴール:

し1.Get 8ランダムint型(無重複)

リストに2.Add

最初の7 INTを3.Sort。

私はCollections.sort(winlist.subList(0、6))を知っています。それだけストリームで行うことができるかどうかを確認しようとしてソートが、イムのための作品。

    new Random()
            .ints (8, 0, 64)
            .distinct()
            .sorted()
            .forEach (Integer -> System.out.print (Integer + "\n"));
Socowi:

無限ストリームを使用して、それを制限した後、明確な操作。

new Random().ints(0, 64).distinct().limit(8).sorted().forEach(System.out::println);

これは、ソート順で範囲[0,64)から8整数の乱数を出力します。

最初の7つの数字をソートするには、7つの数字でストリームを使用し、伝統的に8番目の番号を生成するために容易になるだろう。あなたが本当にその中のすべての8つの数字と一つのストリームを持っているしたい場合は、2つのストリームを連結して1を作成することができます。

IntStream.concat(
  new Random().ints(0, 64).distinct().limit(7).sorted(),
  new Random().ints(0, 64)
).distinct().limit(8).forEach(System.out::println);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=199328&siteId=1