如何随机选择要添加到数组列表中的众多对象之一?

时间:2014-10-18 04:00:45

标签: java arrays arraylist interface

假设我有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 

想法?我拥有的所有其他对象也共享相同的界面,如果这可以帮助我们

1 个答案:

答案 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
}

请注意,您不必在每次迭代时都创建新的生成器 - 您只需创建一次并重用相同的实例。