【发布时间】:2015-07-01 02:34:12
【问题描述】:
很抱歉,如果以前有人问过这个问题,但我找不到任何有用的东西。基本上,当我将一堆字符添加到 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 中的字符时才会出现问题。
谢谢!
【问题讨论】:
-
听起来
char被视为int,这会使e101...也许尝试chars.remove((Character)word.charAt(1));... -
谢谢,效果很好
-
那是哪个版本? java的类型系统真的很烂...
标签: java arraylist indexoutofboundsexception