Java,如何删除ArrayList中的一个整数项?

问题描述 投票:0回答:0

假设我有这样一个ArrayList。

ArrayList<Integer> list = new ArrayList<Integer>();

在进行了添加操作之后

list.add(2);
list.add(3);
list.add(5);
list.add(7);

我想删除 number 2,如果我这样做

list.remove(2);

然后 number 5 会被删除,我怎么能删除 number 2? 假设我不知道这个指数 number 2.

java indexoutofboundsexception
102
投票

试试这个

list.removeAll(Arrays.asList(2));

它将删除所有值=2的元素

你也可以用这个

list.remove(Integer.valueOf(2));

但它只会删除第一次出现的2

list.remove(2) 不工作,因为它与 List.remove(int i) 删除指定索引的元素


19
投票

有两个版本的 remove() 方法。

用一个 ArrayList<Integer>移除一个整数值,如 2,取为指数,如 remove(int) 是完全匹配的。它不会装箱 2Integer,并扩大它。

一个变通的办法是得到一个 Integer 对象,在这种情况下,加宽比开箱更可取。

list.remove(Integer.valueOf(2));

7
投票

我想这就是你想要的。ArrayList <Integer> 使用getremove方法。

list.remove(new Integer(2));

6
投票

而不是。

list.remove(Integer.valueOf(2));

当然你也可以直接使用:

list.remove((Integer) 2);

这将会投向一个Integer对象,而不是基元,然后 remove() 以对象代替阵列索引


3
投票

试试这个。

list.remove(list.indexOf(2));

1
投票

没有明确的方法可以找到一个特定的列表元素 然后将其删除。你必须先用 indexOf 方法。

int index = list.indexOf(element); // for your example element would be 2
list.remove(index);

请注意: indexOf 返回 首次出现 的对象,所以你必须对你想多次删除列表中的一个项目的情况进行相应的调整。


1
投票

试试。

list.remove(0);
  1. 移除(int index)

    移除列表中指定位置的元素(可选操作)。将所有后续元素向左移动(从它们的指数中减去一个)。返回从列表中删除的元素。

  2. remove(Object o)

    如果指定的元素存在,则从这个列表中删除它的第一次出现。如果列表中不包含该元素,则保持不变。更正式的说,删除索引最小的元素,使得(o==null ? get(i)==null : o.equals(get(i))) (ifsuch an element exists)。如果这个列表中包含指定的元素,返回true(或者等价地,如果这个列表因为调用而改变了)。


1
投票

简单的说,如果你使用这样的方法,它将删除索引2的元素。

您的阵列。2,3,5,7

list.remove(2)。

OUTPUT: 2,5,7

如果你使用这样的方法,它将删除值为2的元素。

您的阵列。2,3,5,7

list.remove(Integer.valueOf(2))。

OUTPUT: 3,5,7

希望能帮到你...


-2
投票
list.remove(0);

0代表索引0的元素

而你已经写了 list.remove(2); 这意味着删除索引2的元素(即第三位的元素,即5,因为 ArrayList 从指数0,1,2......开始)

© www.soinside.com 2019 - 2024. All rights reserved.