package test.my.chap0302;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class RemoveOfListTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
//1. 遍历删除list里的第一个和最后一个时会报:ConcurrentModificationException
for(String s:list){
if(s.equals("c")){
list.remove(s);
}
}
//2.遍历删除list里的元素用索引时不会报ConcurrentModificationException
// for(int i=0;i<list.size();i++){
// String s = list.get(i);
// if(s.equals("c")){
// list.remove(s);
// }
// }
//3.遍历删除用iterator不会报ConcurrentModificationException
Iterator<String> it = list.iterator();
while(it.hasNext()){
String s = it.next();
if(s.equals("b")){
it.remove();
}
}
System.out.println(list.size());
}
}
4.还有一种办法就是新建一个list集合,在删除或增加时先存放在新的list里,然后再删除。
例:
List delList = new ArrayList();//用来装需要删除的元素
for(Information ia:list)
if(ia.getId()==k){
n++;
delList.add(ia);
}
list.removeAll(delList);//遍历完成后执行删除
分享到:
相关推荐
ConcurrentModificationException解决办法.md
**解决办法:** 1. **通过Iterator修改集合:** 如果你需要在遍历过程中修改集合,应使用迭代器自身的`remove()`方法。这样,迭代器会正确地处理集合的修改,避免异常。 ```java while (it.hasNext()) { ...
**解决办法:** 1. **通过 Iterator 修改 Hashtable:** 当你必须在遍历过程中删除元素时,应使用迭代器的 `remove()` 方法而不是集合的 `remove()` 方法。这是因为迭代器的 `remove()` 方法会同步更新迭代器的...
解决办法包括: - **检查类型:** 确认变量的类型与期望的类型相匹配。 - **赋值和表达式:** 确保赋值操作符两侧的类型一致,且表达式中的所有操作都是合法的。 - **方法调用:** 检查方法调用中的参数类型是否符合...
解决办法包括恢复备份数据,或者检查存储机制的稳定性和正确性。 5. **IllegalStateException: Session已失效**:当尝试访问一个已经失效的HttpSession时,会抛出此异常。确保在适当的时候关闭或重新创建Session,...
2. **解决办法**: - 使用线程安全的`Vector`替代`ArrayList`。 - 通过`Collections.synchronizedList()`方法将`ArrayList`转换为线程安全的版本。 - 使用`CopyOnWriteArrayList`,它采用写时复制策略,读操作时...
解决办法是在使用前确保所有可能出现的null值已经得到妥善处理。 2. **初始化HashMap的容量大小**: 阿里巴巴建议初始化HashMap时指定容量,以避免内部扩容操作带来的性能开销。合适的初始化容量取决于预期的元素...
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java....
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang....