从字符 ArrayList 中删除字符 [英] Removing a character from an ArrayList of characters

查看:33
本文介绍了从字符 ArrayList 中删除字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在循环中遇到了这种不需要的 charint 转换.假设我有这个字符列表,我想删除其中一个:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆