首页 > 解决方案 > 从数组中删除随机元素并将其添加到另一个数组: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--;
        
}

标签: javaarraylistindexoutofboundsexception

解决方案


问题是您首先从位置 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


推荐阅读