私は次の方法を持っています:
public LinkedList<Object> init(int counter) {
LinkedList<Object> list = new LinkedList<Object>();
double decision, value, key;
int max1 = 700;
int max2 = 1000;
for (int i = 0; i < counter; i++) {
decision= Math.random();
if (decision<= 0.2) {
key = Math.random() * 1.5;
value= Math.random() * max1 ;
list.add(new A(value, key));
} else {
value= Math.random() * max2 ;
list.add(new B(value));
}
}
return list;
}
私が得る問題はこれです:私がこのメソッドを使用して呼び出す場合
init(100);
次に、結果のリストのサイズを確認します。常にそうであるとは限りません100
。max1
代わりに、リスト内の要素の数は、と で選択した値によって異なりますmax2
。たとえば、選択max2 = 1000000
すると、約 15 個の要素のリストになります。これは仕組みと関係があると思いますが、Math.random()
どのように起こるのかわかりません。スレッドに関する問題ですか?
誰かがこれを試してみたい場合に備えて、クラスのテンプレートA
とB
(その動作はこれには影響しません) を次に示します。
public class A {
public A(double value, double key) {}
}
public class B {
public B(double value) {}
}