大家好,我有以下代码行
solution first = mylist.remove((int)(Math.random() * mylist));
这给我一个错误陈述
The operator * is undefined for the argument type(s) double, ArrayList<solution>
我试图从我的ArrayList
中删除我的arrayList中的随机数任何帮助都会得到满足。
答案 0 :(得分:4)
您似乎正在尝试从列表中删除随机元素。要使用随机索引覆盖所有元素,您需要列表大小。
将数字乘以ArrayList
是没有意义的。通过直接在代码中指定列表,无法获得列表的大小。在列表中调用size()
方法。返回可以乘以的int
。
答案 1 :(得分:0)
您需要在列表大小范围内找到一个随机数
final Random random = new Random();
mylist.remove(random.nextInt(myList.size()));
确保您创建Random
并将其存储,否则它可能会重复创建相同的数字(它只是伪随机数)。
此外,nextInt
方法排除了上限,因此mylist.size()
不会返回无效索引。