gpt4 book ai didi

java - 在每次调用时生成唯一的随机数

转载 作者:搜寻专家 更新时间:2023-11-01 03:59:10 25 4
gpt4 key购买 nike

在一次采访中,我被要求编写一个每次调用时都会生成唯一的 5 位随机数的方法。例如:如果我调用该方法并获得 22222,那么在下一次调用中我不应该获得 22222。

我写了一段代码如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class RandomNumberGen {


private static ArrayList arr=new ArrayList();
private static int k=-1;
public RandomNumberGen(){
for (int i=10000;i<99999;i++){
arr.add(i);
}
Collections.shuffle(arr);
}
public static void main(String[] args) {
for(int m=0;m<10;m++){
try {
System.out.println(new RandomNumberGen().randomNumbermethod());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


}
public Integer randomNumbermethod() throws Exception{
k++;
if(k>=arr.size()){
throw new Exception("No more number available");
}else return (Integer) arr.get(k);
}

}

答案被接受,但我被要求现在避免内存浪费。 我的问题在这里,你可以看到我只使用了 10 个数字。所以 arraylist 占用的其余空间是内存浪费。有没有一种方法可以在不使用额外内存的情况下实现同样的事情。 我的意思是在每次调用时可以使用某种方式生成唯一的编号,这样就不会浪费这么多内存。

最佳答案

private static int number = 10000;
public int getNextUniqueRandomNumber() {
return number++;
}

Random number generator

关于java - 在每次调用时生成唯一的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com