如何在list中删除我指定的对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在list中删除我指定的对象相关的知识,希望对你有一定的参考价值。

参考技术A List list = new ArrayLis();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.remove();是移除
括号里面可以是数字,例如list.remove(1),即移掉第2个,即移除元素b;
移除对象是,直接list.remove("b");本回答被提问者采纳
参考技术B var list = [1, 2, 3];
list.splice(0, 1);
console.log(list);
VM12520:3 [2, 3]

如何从列表中删除整数? [复制]

【中文标题】如何从列表中删除整数? [复制]【英文标题】:How to remove integer from list? [duplicate] 【发布时间】:2013-06-06 22:01:21 【问题描述】:

我需要从整数数组列表中删除整数。我对字符串和其他对象没有问题。但是当我删除时,整数被视为索引而不是对象。

List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(300);
list.remove(300);

当我尝试删除 300 时,我得到: 06-11 06:05:48.576: E/AndroidRuntime(856): java.lang.IndexOutOfBoundsException: Invalid index 300, size is 3

【问题讨论】:

你检查过ArrayList的文档吗? list.remove(300); 这里 300 被视为原始 int,传递 Integer 对象。 【参考方案1】:

这很正常,列表有两个版本的.remove() 方法:一个将整数作为参数并删除该索引处的条目,另一个将泛型类型作为参数(在运行时,是 Object) 并将其从列表中删除。

并且方法的查找机制总是首先选择更具体的方法...

你需要:

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

为了调用正确版本的.remove()

【讨论】:

【参考方案2】:

使用 indexof 查找项目的索引。

list.remove(list.indexOf(300));

【讨论】:

虽然这确实有效,但执行起来要比使用Integer.valueOf 简单地获取一个对象要昂贵得多。 绝对会的 ;) 当它显然不是正确的做法时,为什么会得到支持? 对你来说就是这样。好像还不够错。【参考方案3】:

尝试(传递Integer,对象,而不是int,原语)-

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

调用正确的方法 - List.remove(Object o)

【讨论】:

【参考方案4】:

请尝试以下代码从列表中删除整数,

public static void main(String[] args) 
        List<Integer> lIntegers = new ArrayList<Integer>();
        lIntegers.add(1);
        lIntegers.add(2);
        lIntegers.add(300);
        lIntegers.remove(new Integer(300));
        System.out.println("TestClass.main()"+lIntegers);

如果您通过传递原语来删除项目,那么它将把它作为索引而不是值/对象

【讨论】:

【参考方案5】:
Use list.remove((Integer)300);

【讨论】:

我确实测试过它。并且工作正常,没有错误。请解释为什么这是错误的 抱歉,我猜这行不通,但显然自动装箱比我想象的要过分热心。你是对的;没有问题。 @ValekHalfHeart 谢谢。我认为我的回答在否决投票时可能不是一个好习惯。 +1 转换为整数等价于 Integer.valueOf。

以上是关于如何在list中删除我指定的对象的主要内容,如果未能解决你的问题,请参考以下文章

java中 如何从LIST 查找指定元素的位置

如何在list 中删除指定元素

java如何在String数组中取得指定内容的下标?

java如何在String数组中取得指定内容的下标?

java如何获得集合里面某个元素的下标

在python中如何将list中的元素根据指定字符进行切片?