当存储到学生时可能碰巧有相同的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();
}
答案 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存储库