【发布时间】:2014-01-04 03:53:19
【问题描述】:
如果元素存在于链表中,我想在迭代数字数组时删除它
for(int num : numbers)
{
if(l.contains(num))
{
l.remove(num);
}
}
但是,它试图删除索引 num 处的元素,而不是在链表中查找 num。
javadoc有这个方法
remove(Object o)
Removes the first occurrence of the specified element from this list, if it is present.
如何使用它?
【问题讨论】:
-
使用
l.remove(new Integer(num)); -
另外,不要使用
for each。 -
谢谢,它成功了。那么是不是因为如果我们使用原始类型,它会将它用作索引?所以我们把它包装成对象了吗?
-
l是您的链接列表吗?你是怎么初始化的? -
@user2133404
foreach循环使用迭代器遍历列表,并且在迭代列表时更改列表会使迭代器无效。
标签: java linked-list