java - 从数组中删除随机元素并将其添加到另一个数组:OutOfIndex 绑定错误
问题描述
这段代码有什么问题?我正在尝试从 ArrayList 中选择一个随机元素并将其移动到另一个 ArrayList 以创建排列。它不断给我出界错误。
int size = 10;
for (int i = 0; i < 10; i++) {
int r = (int) (Math.random() * (size));
random.remove(r);
permutations.add(random.get(r));
size--;
}
解决方案
问题是您首先从位置 r 移除指令的顺序,然后尝试从位置 r 获取指令。
permutations.add(random.get(r));
random.remove(r);
此外,如果您想从集合中删除为 arrayList,我建议您使用迭代器。迭代器有方法作为 next() 用于获取数组中的下一个元素和 remove() 用于删除您可以检查的实际元素https://docs.oracle.com/javase/8/docs/api/java/util/Iterator .html
推荐阅读
- swift - Edit- How can I add that when the answer is wrong it will turn red and green in the correct answer? Swift 4.2
- python - 简单的 Python 暂停/恢复
- sql - SQL Server - 在列中查找相似之处并将它们写入新列
- java - Spring 是否支持 OpenJDK 12
- delphi - 如何从目标 BPL 中检测 UnloadPackage?
- typescript - 在 Angular 7 应用程序中使用 Protractor 和 Typescript 识别元素
- javascript - 开玩笑地模拟动态 html 元素
- javascript - 查找是否在父 div 中选中所有复选框
- swift - 找不到架构“armv7”的模块“SJSegmentedScrollView”;找到:arm64
- android - 如何从具有 2 个名称相同但颤动值不同的对象列表的 JSON 编写 PODO?