首页 > 解决方案 > 在java中生成具有不同数字的随机数

问题描述

我正在尝试生成一个具有 4 个不同数字的随机数。

问题是它必须是单线的,解决方案不需要漂亮。

我已经尝试过使用Collections.shuffle(Mylist),但我无法在一行中使用它。

到目前为止我的代码:

List<Integer> digits = IntStream.range(0,10).boxed().collect(Collectors.toList());
Collections.shuffle(digits);
System.out.println(digits.subList(0,4));

标签: javarandom

解决方案


我不确定我是否想知道为什么您需要将其作为单线(:)),但它可能是例如

Stream.of(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9))
    .peek(Collections::shuffle)
    .map(list -> list.subList(0, 4))
    .findFirst()
    .get()

编辑

如果您需要确保数字不会以0您可以将map片段更改为例如

.map(list -> (list.get(0).equals(0)) ? list.subList(1, 5) : list.subList(0, 4))

推荐阅读