Java,如何删除ArrayList中的整数项
假设我有这样一个ArrayList:Java,如何删除ArrayList中的整数项,java,Java,假设我有这样一个ArrayList: ArrayList<Integer> list = new ArrayList<Integer>(); 如果我想删除编号2,我想删除 list.remove(2); 然后将删除第5号,如何删除第2号?假设我不知道编号2的索引 list.remove(0); 0表示索引0处的元素 您已经编写了列表。删除(2)这意味着删除索引2处的元素(即第三位的元素,即5,因为ArrayList从索引0,1,2开始)试试这个 list.remov
ArrayList<Integer> list = new ArrayList<Integer>();
如果我想删除编号2,我想删除
list.remove(2);
然后将删除第5号,如何删除第2号?假设我不知道编号2的索引
list.remove(0);
0表示索引0处的元素
您已经编写了列表。删除(2)
这意味着删除索引2处的元素(即第三位的元素,即5,因为ArrayList
从索引0,1,2开始)试试这个
list.removeAll(Arrays.asList(2));
它将删除值为2的所有元素
你也可以用这个
list.remove(Integer.valueOf(2));
但它只会删除2的第一次出现
list.remove(2)
不起作用,因为它与list.remove(int i)
匹配,它删除具有指定索引的元素没有明确的方法来查找特定的列表元素,然后将其删除。您必须首先使用indexOf
方法找到它:
int index = list.indexOf(element); // for your example element would be 2
list.remove(index);
请注意,indexOf
返回给定对象第一次出现时的索引,因此,如果要多次删除列表中的项目,则必须进行相应调整。有两种版本的remove()
方法:
int index = list.indexOf(element); // for your example element would be 2
list.remove(index);
- 将
对象
移除,然后
- 这需要一个
索引才能删除李>
对于ArrayList
,删除像2
这样的整数值作为索引,因为remove(int)
与此完全匹配。它不会将2
框到Integer
,并将其加宽
一种解决方法是显式获取整数
对象,在这种情况下,加宽比取消装箱更可取:
list.remove(Integer.valueOf(2));
我想这就是你想要的:
试试这个:
list.remove(list.indexOf(2));
试试看
删除(整型索引)
删除此列表中指定位置的元素(可选)
操作)。将任何后续元素向左移动(减去
一个来自他们的指数)。返回从中删除的元素
名单
移除(对象o)
从中删除指定元素的第一个匹配项
列表(如果有)。如果列表不包含该元素,则
没有变化。更正式地说,删除具有最小值的元素
索引i使得(o==null?get(i)==null:o.equals(get(i))
)(如果
这样一个元素是存在的)。如果此列表包含
指定的元素(或等效元素,如果此列表因此更改
电话号码)
简单地说,若您使用这样的方法,它将删除索引2处的元素
你的数组列表:2,3,5,7
列表。删除(2)
产出:2,5,7
如果您使用这样的方法,它将删除值为2的元素
你的数组列表:2,3,5,7
list.remove(Integer.valueOf(2))
产出:3,5,7
希望它能帮助…而不是:
list.remove(Integer.valueOf(2));
当然,您可以使用:
list.remove((Integer) 2);
这将强制转换为整数对象而不是原语,然后按对象而不是按Arraylist索引执行remove()
调用list.remove(int)
方法,但需要调用list.remove(object)
方法
有几种方法可以做到这一点:
list.remove(Integer.valueOf(2));//删除第一次出现的2
list.remove(list.indexOf(2));//同时删除第一次出现的2
list.removeAll(Arrays.asList(2));//删除所有出现的2
最简单的方法是:
list.remove((Integer)5);
没有不必要的对象创建,只是将索引强制转换为整数。奖励:最简单的语法。您应该更喜欢Integer.valueOf
,而不是构造函数,因为它使用内部缓存来防止不必要的对象创建。可能重复,所以只要对象是整数而不是int,它就会查找对象,对吗?例如-public void findById(Integer id){Object item=array.get(id);}将返回值,但位置不正确?Hi:),此答案已被回答。如果你有什么要补充的,请把它也包括进去,否则就考虑删除这个。
list.remove((Integer) 2);
list.remove((Integer)5);