从字符 ArrayList 中删除字符 [英] Removing a character from an ArrayList of characters
问题描述
我在循环中遇到了这种不需要的 char
到 int
转换.假设我有这个字符列表,我想删除其中一个:
I am facing with this unwanted char
to int
conversion in a loop. Say I have this List of Characters and I want to remove one of those:
List<Character> chars = new ArrayList<>();
chars.add('a');
chars.add('b');
chars.add('c');
chars.remove('a'); // or chars.remove('a'-'0');
so 'a'
被解释为它的 int
值,我得到一个 IndexOutOfBoundsException
异常.有什么简单的解决方法吗?
so 'a'
is interpreted as its int
value and I'm getting an IndexOutOfBoundsException
exception. Is there any easy workaround for this?
推荐答案
A char
被提升为 int
,它优先于自动装箱,所以 remove(int)
被调用而不是 remove(Object)
你可能直觉上已经预料到了.
A char
is promoted to an int
, which takes precedence over autoboxing, so remove(int)
is called instead of remove(Object)
you may have intuitively expect.
您可以通过自己装箱参数来强制调用正确"的方法:
You can force the "right" method to be called by boxing the argument yourself:
chars.remove(Character.valueOf('a'));
这篇关于从字符 ArrayList 中删除字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!