-3

当存储给学生时可能碰巧有相同的 id,所以我怎样才能避免重复,我尝试了 while 循环和 for each 循环,但它没有用

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();


}
4

5 回答 5

5

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

于 2013-03-28T16:01:22.803 回答
3

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

例子:

UUID myID = UUID.randomUUID();

它使用RFC 4122:通用唯一标识符 (UUID) URN 命名空间”方法。

于 2013-03-28T16:10:15.623 回答
2

告诉我所有这些都不是用来生成数据库ID的。如果是这种情况,您要走最坏的路,则必须将 id 生成委托给数据库

于 2013-03-28T16:11:06.193 回答
1

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

您如何存储它们取决于您计划生成多少。

于 2013-03-28T16:01:51.650 回答
1

我建议在此处查看有关随机数生成的 Google 存储库

于 2013-03-28T16:02:10.977 回答