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