java 基尔_Java中唯一随机数的生成

8023d646d69a1ae4a59c32e489b2a331.png

ITMISS

使用Java 8+,您可以使用ints方法Random得到一个IntStream随机值distinct和limit若要将流缩减为若干唯一的随机值,请执行以下操作。ThreadLocalRandom.current().ints(0, 100).distinct().limit(5).forEach(System.out::println);Random也有创建LongStreamS和DoubleStream如果你需要的话。如果您想要一个范围内的所有(或大量)数字按随机顺序排列,那么将所有数字添加到列表中,对其进行洗牌,然后取第一个n可能更有效,因为上面的示例目前是通过在所请求的范围内生成随机数并将它们传递到一个集合中来实现的(类似于罗布·基尔蒂的回答),这可能需要生成比传递到限制的数量更多的内容,因为生成一个新的唯一数的概率随着发现的每一个数字而减小。下面是另一个方法的例子:List range = IntStream.range(0, 100).boxed()

        .collect(Collectors.toCollection(ArrayList::new));Collections.shuffle(range);range.subList(0, 99).forEach(System.out::println);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值