【问题标题】:OutOfBoundException index:1, size:1OutOfBoundException 索引:1,大小:1
【发布时间】:2015-05-07 10:55:10
【问题描述】:

我有一个出站异常索引 1,大小 1 我似乎找不到问题 这是我的代码:

public void removeSpellToGraveyard(ArrayList<SpellCard> spells){
    for(int c=0; c<5 ; c++ ){
        SpellCard r = spells.get(c);
        for(int i=0; i<5;i++){
            if(spellArea.get(i) == r){
                graveyard.add(spellArea.remove(i));

            }
        }
    }
}

【问题讨论】:

  • 在我看来像 Java。如果没有,请正确标记您的问题。
  • 嗯,大概spells.size() 是 1,而你打电话给spells.get(1) 因为c1。或者 spellArea 的等价物。请注意,您从 spellArea 删除项目的方式非常冒险 - 您将跳过值(如果您删除元素 0,下一个要检查的元素现在又是元素 0...)
  • 你好吗spells.size() &gt;= 5spellArea.size() &gt;= 5?你不会在任何地方检查。
  • 但从根本上说,您并没有告诉我们异常在哪里,也没有告诉我们您尝试采取什么措施来解决它。你没有给我们一个简短但完整的程序来演示这个问题,所以我们基本上只能猜测。

标签: java indexoutofboundsexception


【解决方案1】:

我将提供一个实现其明显意图的方法版本。我希望这至少能帮助你弄清楚你想做什么,如果它不能解决你的问题。

public void removeSpellToGraveyard(ArrayList<SpellCard> spells) {
    for (SpellCard r: spells) {
        if (spellArea.remove(r)) {
            graveyard.add(r);
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多