0

arraylistにいくつかの値を追加したいのですが、ランダムなインデックスです。これは可能ですか?

4

2 に答える 2

2

これを行うには、範囲を指定してMath.Randomを使用できます。ArrayListは動的に拡張される配列であるため、任意のインデックスに追加する必要はありません。つまり、特定のサイズを超えるインデックスを使用する場合は、サイズを変更する必要があります。これにより、インサートのコストが必要以上に高くなり、必要以上にメモリを消費します。あなたが言うだけであることがわかっているなら..100アイテムそれからちょうど1から100の間のランダムな値を選んでください。

編集:次のようにすると、ランダムは10進値を生成しません..次の範囲よりも1〜4の範囲が必要だと言うと、必要なものが得られます...

public int Rand(){
    return ((int)(1+(Math.random()*4)));
}
于 2012-04-09T14:40:30.803 に答える
0

はい、可能です。のMath.random()オーバーロードされたadd()メソッドで使用できますArrayList
例えば:

arrayList.add(getRandomIndex(arrayList.size()),object);

また、getRandomIndex()メソッドは次のようになります。

public int getRandomIndex(int size){
    return ((int)Math.random()*size)
}
于 2012-04-09T14:44:42.840 に答える