首页 > 解决方案 > 通过 Random.nextLong() 检查 long 是否可以随机生成

问题描述

您可能知道,Random.nextLong()Java 中不会生成所有可能的长值。如何检查特定的 long 是否可以通过该方法随机生成?

标签: java

解决方案


首先,JavaDoc to Random 说:

{@code Random} 类对 {@code setSeed} 的实现碰巧只使用了给定种子的 48 位。然而,一般来说,覆盖方法可以使用 {@code long} 参数的所有 64 位作为种子值。

但您可能还想查看ThreadLocalRandom,因为它似乎没有 48 位种子限制。而且它也更快。


推荐阅读