-2

java.util.UUIDJava のクラスで動作しますか? つまり、メイン メソッド内でそのクラスのオブジェクトを構築するたびに一意の ID 番号を持つように、一意の ID を必要とするクラスがあります。

コンストラクタは次のようになります。

class flight{
        private UUID id;

        public void flight(){
           id = UUID.randomUUID();
        }
}

メイン メソッドの呼び出しは次のようになります。

public static void main(String[] args){
    flight[] allflights = new flight[100];
    flight tempFlight;

    for(int i=0; i<100; i++){
        tempFlight = new flight()
        allflights[i] = tempFlight;
    }

これにより、フライト配列内のすべてのフライトに対して一意の ID が生成されますか?

4

3 に答える 3

3

ドキュメントで説明されているように、これは実際に各オブジェクトに一意の ID を生成します。

タイプ 4 (疑似ランダム生成) を取得するための静的ファクトリUUID。はUUID、暗号的に強力な疑似乱数ジェネレーターを使用して生成されます。

Vidkorがコメントで説明しているように、衝突の可能性はあります。

于 2012-08-22T06:58:52.487 に答える
2

はい、これが UUID の目的です。randomUUID() を呼び出すたびに、新しいランダム UUID が取得されます。UUID は 128 ビット値です。

したがって、理論的には、ランダム UUID を使用すると衝突が発生する可能性がありますが、暗号的に強力なランダム ジェネレーターが使用されていると言われているため、その可能性を気にする必要はないと思います。

于 2012-08-22T07:00:57.150 に答える
-1

あなたの質問に対する答えはあなたの質問にあります。

そのコードを実行して UUID を出力すると、追加の何がそんなに難しいのかがわかりますSystem.out.println

public static void main(String[] args){ フライト[] allflights = 新しいフライト[100]; フライト tempFlight;

for(int i=0; i<100; i++){
    tempFlight = new flight()
    allflights[i] = tempFlight;
    System.out.println(tempFlight.getId());
}
于 2012-08-22T06:56:02.120 に答える