我有以下Integer列表
whatToRemove = {2, 3, 8};
和另一个清单
lst = {4, 6, 8}
我想从whatToRemove
中移除所有lst
个元素。
我正在尝试使用lst.remove(whatToRemove.get(i))
,但它正在尝试删除索引,而不是值。
我该怎么做?
答案 0 :(得分:1)
List<Integer> whatToRemove = Arrays.asList(2, 3, 8);
List<Integer> lst = new ArrayList<Integer>(Arrays.asList(4, 6, 8));
lst.removeAll(whatToRemove);
答案 1 :(得分:0)
您可以使用removeAll()
,它将实现Collection interface
的对象作为参数,如下所示:
list.removeAll(collection);
或者您需要进行某种迭代才能浏览所有要删除的值,因为remove()
不会将另一个列表作为参数,只需要索引或对象:
for(int i=0;i<whatToRemove.size();i++){
lst.remove(whatToRemove.get(i));
}
答案 2 :(得分:0)
使用迭代器:
for (Iterator it=lst.iterator(); it.hasNext();) {
if (whatToRemove.contains(it.next())
it.remove();
}
答案 3 :(得分:0)
如果您使用Java集合执行此操作,则只需在第一个列表中调用removeAll(Collection<T> o)
即可删除所有出现的内容。
它看起来像lst.removeAll(whatToRemove);
或者,您可以轻松地遍历所有元素
for(int num : whatToRemove)
{
lst.remove(num);
}
两者都是可行的,如果您使用数组,您仍然可以使用增强的for来进行迭代。但删除是一个不同的问题。
链接到Javadoc:List
答案 4 :(得分:0)
这是因为List有一个删除按索引删除元素的删除和按对象删除的删除请参阅:
http://docs.oracle.com/javase/6/docs/api/java/util/List.html#remove(int)
看看有2个删除: - (?
不幸的是,因为你的列表包含整数,Java认为你的意思是删除(item at)而不是删除(object)
使用
Collection lst = [whatever]
lst.remove(whatToRemove.get(i))
...然后删除应该正常工作,因为Collection只有一种删除功能(你想要使用的那个)
http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html
答案 5 :(得分:0)
使用List
上的removeAll方法答案 6 :(得分:0)
使用list元素,您将要删除列表中对象的索引。对于你的例子,它显然是整数。要实现此目的,您可以使用for循环或以手动方式拉出每个索引对象。
for循环 - 示例:
for(int i = 0; i < whatToRemove.size(); i++){
whatToRemove.remove(i);
}
手册 - 示例:
whatToRemove.remove(0);
whatToRemove.remove(1);
whatToRemove.remove(2);
这是我从您的问题中理解的,您希望从列表调用“whatToRemove”中删除所有元素。
这是一个链接,可以提供对列表参数Link - Java Object 'List'
的一些了解答案 7 :(得分:0)
您可以使用 removeAll(Collection c)方法,如下所示
的 lst.removeAll(whatToRemove); 强> 的
请查看下面的示例
List<Integer> whatToRemove = new ArrayList<Integer>();
whatToRemove.add(new Integer(2));
whatToRemove.add(new Integer(3));
whatToRemove.add(new Integer(8));
List<Integer> lst = new ArrayList<Integer>();
lst.add(new Integer(4));
lst.add(new Integer(6));
lst.add(new Integer(8));
lst.removeAll(whatToRemove);
您可以参考以下网址,了解有关收集和删除所有方法的详细信息
http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html