如何生成一个唯一的随机数?

时间:2013-03-28 15:59:31

标签: java arrays methods random bluej

当存储到学生时可能碰巧有相同的id,所以我怎么能避免重复,我已经尝试了while循环和for循环但它没有工作

public void addStudent(Student student)

{

student.setId(ganerateNewRandom("aa", 2));

students.add(student);

}






  public String ganerateNewRandom(String prefix, int number)
 {

  Random random = new Random();

    StringBuffer ret = new StringBuffer(prefix);


    for(int i=0;i<number;i++) ret.append(random.nextInt(10));


    return ret.toString();


}

5 个答案:

答案 0 :(得分:5)

我建议您模仿在数据库中完成的方式: 从id=1开始,每次将其放大1:id++。 这样每个学生都有唯一的ID,你不必生成随机数。

答案 1 :(得分:3)

使用java.util.UUID生成正确的唯一ID。

示例:

UUID myID = UUID.randomUUID();

它使用RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"方法。

答案 2 :(得分:2)

告诉我所有这些都不用于生成数据库ID。如果是最糟糕的情况,必须将id生成委托给数据库

答案 3 :(得分:1)

要确保您的随机数是唯一的,您必须存储所有以前的随机数。

如何存储它们取决于您计划生成的数量。

答案 4 :(得分:1)

我建议您查看有关随机数生成here

的Google存储库