从数组中删除字符字符列表

2022-09-02 09:11:19

我正面临着这种不需要的转换循环。假设我有这个字符列表,我想删除其中一个:charint

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

所以被解释为它的价值,我得到了一个例外。有没有简单的解决方法?'a'intIndexOutOfBoundsException


答案 1

A 被提升为 一个,它优先于自动装箱,因此调用 remove(int) 而不是您可能直观期望的 remove(Object)。charint

您可以通过自己装箱参数来强制调用“正确”方法:

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

答案 2

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

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