首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -从ArrayList中多次删除时出错。(IllegalStateException)

Java -从ArrayList中多次删除时出错。(IllegalStateException)
EN

Stack Overflow用户
提问于 2012-11-24 16:50:25
回答 2查看 14.2K关注 0票数 3

我已经在谷歌上搜索了很久,似乎找不到解决方案。我在这里做错了什么?我的问题出在标题上。下面是我得到的异常:

代码语言:javascript
复制
java.lang.IllegalStateException
at java.util.ArrayList$Itr.remove(Unknown Source)
at me.herp.derp.client.Config.updateItem(Config.java:24)
at me.herp.derp.client.Commands.parseCommand(Commands.java:23)
at me.herp.derp.client.ChatCommands.handleChatcommand(ChatCommands.java:29)
at net.minecraft.src.EntityClientPlayerMP.sendChatMessage(EntityClientPlayerMP.java:171)
at net.minecraft.src.GuiChat.keyTyped(GuiChat.java:104)
at net.minecraft.src.GuiScreen.handleKeyboardInput(GuiScreen.java:227)
at net.minecraft.src.GuiScreen.handleInput(GuiScreen.java:176)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1494)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:843)
at net.minecraft.client.Minecraft.run(Minecraft.java:768)
at java.lang.Thread.run(Unknown Source)

下面是我的代码:

代码语言:javascript
复制
public static void updateItem(String item, String value)
{
    if (!hasValue(item))
    {
        addItem(item, value);
        return;
    }
    for (ConfigItem c : configItems)
    {
        if (c.ITEM.equals(item))
        {
            configItems.iterator().remove();
            break;
        }
    }
    ConfigFile.saveConfig();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-24 16:56:06

迭代器未正确初始化(未调用next())。我建议这样写代码:

代码语言:javascript
复制
Iterator<ConfigItem> it = configItems.iterator();
while(it.hasNext()){
    ConfigItem c = it.next();
    if (c.ITEM.equals(item))
    {
        it.remove();
        break;
    }
}
票数 14
EN

Stack Overflow用户

发布于 2012-11-24 16:54:58

只能在Iterator.next()之后调用Iterator.remove()。试试这个:

代码语言:javascript
复制
Iterator<ConfigItem> i = configItems.iterator();
while(i.hasNext()) {
    ConfigItem next = i.next();
    if (next.equals(item))
    {
        i.remove();
        break;
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13539716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档