假设我有4个对象,我希望用这四个对象填充100个元素的arraylist。基本上每次我们向arraylist添加元素时,每个元素都会有1/4的机会被选中。我想到了一种方法,但我认为有更好的,更好的"漂亮的" &安培;有效的方式
只是粗略的伪代码来帮助解释for(int i = 0; i != 100; i++){
Random generator = new Random();
int i = generator.nextInt(4); // this will give us 0,1,2,or 3
if(i ==0){
arraylist.add(object1(param1, param2));
}
// etc.. continues with 3 other else if statments and objects
想法?我拥有的所有其他对象也共享相同的界面,如果这可以帮助我们
答案 0 :(得分:1)
从包含四个对象的数组开始:
Object[] objects = new Object[] {
object1(param1, param2),
object2(param1),
object3(param1, param2, param3, param4),
object4(param1, param2)
}
然后调整您的代码:
Random generator = new Random();
for(int i = 0; i < 100; i++){
int j = generator.nextInt(4); // this will give us 0,1,2,or 3
arraylist.add(objects[j]);
// etc.. continues with 3 other else if statments and objects
}
请注意,您不必在每次迭代时都创建新的生成器 - 您只需创建一次并重用相同的实例。