【发布时间】:2020-06-23 05:25:51
【问题描述】:
我是编码新手,我对这个 ArrayList 的工作方式感到很困惑。
我有 [Java] 代码:
ArrayList<Object> allCards = new ArrayList<Object>();
allCards.add(2);
allCards.add(2);
allCards.add(3);
allCards.add('K');
allCards.add('J');
打印出allCardsArrayList,我有:
[2, 2, 3, K, J]
现在,我需要接收用户输入,并从这个 ArrayList 中删除用户输入。我该怎么做?
我可以使用
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
allCards.remove(new Integer(i));
如果 ArrayList 仅包含整数,但用户输入可以是 char 或 int,我如何从 ArrayList 中删除它?
另外,如果 ArrayList 中有两个相同的用户输入,比如数字 2,我只想删除其中一个。
谢谢。
【问题讨论】:
-
注意:你应该使用工厂方法
Integer.valueOf来支持构造函数。这利用了整数缓存,提供了性能提升。 -
@MCEmperor 或者只是传递 i,这正是这样做的。
-
@MauricePerry 不,那行不通,因为
remove(Object o)方法被remove(int index)重载了,它不会删除指定的对象,而是删除位于而是指定的索引。我承认这是一个令人讨厌的问题,但这对于这个特殊情况很重要。在这种情况下,如果i具有值3并且调用了allCards.remove(i),则将删除K。 -
@MCEmperor 好的。我的错。