从ArrayList中删除字符

时间:2016-08-09 22:21:02

标签: java list arraylist char

我在循环中遇到了这个不受欢迎的charint转换。假设我有这个字符列表,我想删除其中一个:

List<Character> chars = new ArrayList<>();
chars.add('a');
chars.add('b');
chars.add('c');
chars.remove('a');  // or chars.remove('a'-'0');

因此'a'被解释为其int值,我收到IndexOutOfBoundsException例外。这有什么简单的解决方法吗?

3 个答案:

答案 0 :(得分:19)

char被提升为int,优先于自动装箱,因此调用remove(int)代替您可能直观预期的remove(Object)

你可以强迫&#34;对&#34;通过自己装入参数来调用的方法:

chars.remove(Character.valueOf('a'));

答案 1 :(得分:8)

您需要将其强制转换为对象类型,以强制编译器选择remove(Object)而不是remove(int)

chars.remove((Character) 'a');

答案 2 :(得分:6)

您可以在列表中搜索a恰好在哪里。

chars.remove(chars.indexOf('a'));