java中的List的remove问题
privatestaticBriefContact[]method1(String[]strs,BriefContact[]persons){List<BriefCont...
private static BriefContact[] method1(String[] strs, BriefContact[] persons) {
List<BriefContact> data = new ArrayList<BriefContact>();
List<BriefContact> list = new ArrayList<BriefContact>();
for (BriefContactInfo person : persons) {
boolean b = list.add(person);
System.out.println(b);
for (String str : strs) {
if (str.equals(person.getEmail())) {
data.add(person); // 重复元素
boolean f = list.remove(person);
System.out.println(f);
}
}
}
list.addAll(0, data);
BriefContact[] list1 = new BriefContact[list.size()];
list.toArray(list1);
return list1;
}
在remove的时候总是不成功,F的值始终都是false 展开
List<BriefContact> data = new ArrayList<BriefContact>();
List<BriefContact> list = new ArrayList<BriefContact>();
for (BriefContactInfo person : persons) {
boolean b = list.add(person);
System.out.println(b);
for (String str : strs) {
if (str.equals(person.getEmail())) {
data.add(person); // 重复元素
boolean f = list.remove(person);
System.out.println(f);
}
}
}
list.addAll(0, data);
BriefContact[] list1 = new BriefContact[list.size()];
list.toArray(list1);
return list1;
}
在remove的时候总是不成功,F的值始终都是false 展开
4个回答
展开全部
追问
这个地方,语法肯定没有问题,逻辑也肯定没有问题,如果不信的话,你可以试试看,我也可以告诉你个很奇怪的地方,就是在控制台没问题,放到实际的使用就会出现无法remove,如果不信你可以试试看,另外那两行没什么意思,就是实际中的需要而已。
展开全部
抛出异常java.util.ConcurrentModificationException。【解决办法】
如果想要在迭代的过程中,执行删除元素操作怎么办?
再来看看内部类Itr的remove()方法,在删除元素后,有这么一句expectedModCount =
modCount,同步修改expectedModCount
的值。所以,如果需要在使用迭代器迭代时,删除元素,可以使用迭代器提供的remove方法。对于add操作,则在整个迭代器迭代过程中是不允许的。
其他集合(Map/Set)使用迭代器迭代也是一样。
如果想要在迭代的过程中,执行删除元素操作怎么办?
再来看看内部类Itr的remove()方法,在删除元素后,有这么一句expectedModCount =
modCount,同步修改expectedModCount
的值。所以,如果需要在使用迭代器迭代时,删除元素,可以使用迭代器提供的remove方法。对于add操作,则在整个迭代器迭代过程中是不允许的。
其他集合(Map/Set)使用迭代器迭代也是一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于所有数组/列表/map等等以组的形式存储数据的结构.当你在遍历他们的时候请不要进行remove或者add之类的操作.因为这会改变该数据的结构,从而导致一些错误.
追问
实践证明,这个结构无关,而且我这并不是错误,只是执行不成功而已
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
remove(object)
object必须equals你要移除的object
object必须equals你要移除的object
追问
这是一个循环,再没有进行下一个循环之前,object必须是一个啊!
追答
用remove(index)试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询