Java ArrayList乘法

时间:2013-03-04 18:13:06

标签: java

大家好,我有以下代码行

solution first = mylist.remove((int)(Math.random() * mylist));

这给我一个错误陈述

The operator * is undefined for the argument type(s) double, ArrayList<solution>

我试图从我的ArrayList

中删除我的arrayList中的随机数

任何帮助都会得到满足。

2 个答案:

答案 0 :(得分:4)

您似乎正在尝试从列表中删除随机元素。要使用随机索引覆盖所有元素,您需要列表大小。

将数字乘以ArrayList是没有意义的。通过直接在代码中指定列表,无法获得列表的大小。在列表中调用size()方法。返回可以乘以的int

答案 1 :(得分:0)

您需要在列表大小范围内找到一个随机数

final Random random = new Random();

mylist.remove(random.nextInt(myList.size()));

确保您创建Random并将其存储,否则它可能会重复创建相同的数字(它只是伪随机数)。

此外,nextInt方法排除了上限,因此mylist.size()不会返回无效索引。