0

我想在数组列表中添加一些值,但在随机索引处。这可能吗?

4

2 回答 2

2

您可以使用带有范围的Math.Random来执行此操作。我怀疑你想在任何索引处添加它,因为 ArrayList 是一个动态扩展的数组,这意味着如果你使用超过一定大小的索引,它必须调整大小。这将使您的插入成本超过所需的成本,并且占用的内存也超出所需。如果你知道你只会说.. 100 个项目,那么只需选择 1 - 100 之间的随机值。

编辑:如果您执行以下操作,随机不会产生十进制值..您说您想要 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 回答