因此,我创建了一个 IntStream,为其指定了 1 - 9 的范围。我希望能够使用 map 函数获取给定范围 (1-9) 中的每个元素并随机化每个元素。
本质上,我想在每次程序运行时以不同的顺序流式传输数字 1 - 9。 (我对其他想法持开放态度,但它必须使用流)。
我听说过使用 Java 的 Random 类,但我不确定如何在每个元素的映射上实现它。
我尝试这样做但有错误:
IntStream.range(1, 9).map(x -> x = new Random()).forEach(x -> System.out.println(x));
任何帮助,将不胜感激。
也可以使用这种方式完成Random.ints https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#ints-int-int-:
new Random().ints(1,10)
.distinct()
.limit(9)
.forEach(System.out::println);
Output:
9 8 4 2 6 3 5 7 1
EDIT
如果您需要一个Stream
然后使用这些值执行以下操作:
Stream<Integer> randomInts = new Random().ints(1, 10)
.distinct()
.limit(9)
.boxed();
如果您需要一个List
然后使用这些值执行以下操作:
List<Integer> randomInts = new Random().ints(1, 10)
.distinct()
.limit(9)
.boxed()
.collect(Collectors.toList());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)