-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: A Universally Unique IDentifier (UUID) URN Namespace」の方法論を使用します。

于 2013-03-28T16:10:15.623 に答える
2

これらすべてがデータベース ID の生成に使用されていないことを教えてください。最悪の場合は、ID 生成をデータベースに委任する必要があります。

于 2013-03-28T16:11:06.193 に答える
1

ここで乱数生成に関してGoogleのリポジトリをチェックすることをお勧めします

于 2013-03-28T16:02:10.977 に答える
1

乱数が一意であることを確認するには、以前の乱数をすべて保存する必要があります。

それらをどのように保管するかは、生成する予定の数によって異なります。

于 2013-03-28T16:01:51.650 に答える