如何通过scala生成不同的随机数?而且数量应该尽可能短

Cai*_*Liu 1 random scala

如何通过scala生成不同的随机数?并且数量应该尽可能短.我想生成标签数据的唯一ID,同时id应该足够短以节省成本?

ch3*_*hau 8

因为你的要求是

  1. 随机数

  2. 独特

  3. 尽可能短

然后我认为你应该考虑使用scala.util.Random.shuffle,例如,

scala.util.Random.shuffle(1 to 30)
Run Code Online (Sandbox Code Playgroud)

上面的代码将生成一个Vector包含从1到30的唯一随机数(就位置而言),例如Vector(26, 10, 7, 29, 11, 14, 16, 1, 12, 9, 28, 6, 19, 4, 27, 8, 13, 18, 30, 20, 23, 5, 21, 24, 17, 25, 2, 15, 22, 3).

基本上它只是满足你需要的一切.

如果您希望得到结果,Set或者List只是调用toSettoList方法.

nextInt可以实现相同的目的,但你可能需要很多逻辑和重试机制.