gpt4 book ai didi

java - ArrayList 的 remove(object) 给出 IndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 11:21:42 25 4
gpt4 key购买 nike

很抱歉,如果之前有人问过这个问题,但我找不到任何有帮助的东西。基本上,当我向 ArrayList 添加一堆字符,然后尝试删除其中一个字符时,我得到一个 IndexOutOfBoundsException,但我不明白为什么。这是我正在谈论的内容的一般示例。

public void addChars(){
ArrayList<Character> chars = new ArrayList<Character>();
word = "hello";
chars.add(word.charAt(0));
chars.add(word.charAt(1));
chars.add(word.charAt(2));
chars.add(word.charAt(3));
chars.add(word.charAt(4));

chars.remove(word.charAt(1));
}

出现以下错误

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 101, Size: 5
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.remove(ArrayList.java:492)
at trial.addChars(trial.java:26)
at trial.main(trial.java:31)

我不明白当我尝试删除一个字符时如何得到 IndexOutOfBoundsException,java 不应该查看我的 ArrayList“字符”,并且根据字符是否存在来删除或不删除?

如果我更改此代码以删除 ArrayList 中不存在的字符,它可以正常工作,只有当我尝试删除 ArrayList 中的字符时,事情才会崩溃。

谢谢!

最佳答案

chars.remove((Character)word.charAt(1));

ArrayList.remove() 方法还可以采用整数索引。尝试:

chars.remove(chars.indexOf(word.charAt(1)));    

关于java - ArrayList 的 remove(object) 给出 IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31151690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com