java - 在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));
解决方案
我不确定我是否想知道为什么您需要将其作为单线(:)),但它可能是例如
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))
推荐阅读
- javascript - GTM 增强型电子商务 - 未捕获的类型错误:无法读取未定义的属性“购买”
- angular - 离子/角度中 FormGroup 中的输入字段存在问题
- java - 本地通知侦听器未执行操作
- c# - 如何从在 startup.cs 中构建 serviceProvider 的类库中获取 IServiceProvider?
- c# - 发布者的 RabbitMQ Ack
- python - 在 tkinter 后台执行功能
- vue.js - Vue-Router 在选择选项中不起作用
- filter - 卷积效果从 Gimp 版本 2.8.22 更改为 2.10.18
- c# - 组合框值发生变化,但在视觉上 SelectedValue 保持不变
- java - MongoDB的查询条件传入时按日期降序排序时如何限制(1)记录