首先,List集合三种遍历方式
List list=new ArrayList();
1.增强for循环
for(String str : list) {//其内部实质上还是调用了迭代器遍历方式,这种循环方式还有其他限制,不建议使用。
System.out.println(str);
}
2.普通for循环
for( int i = 0 ; i < list.size() ; i++) {//内部不锁定,效率最高,但在多线程要考虑并发操作的问题。
System.out.println(list.get(i));
}
3.迭代器遍历
Iterator iter = list.iterator();
while(iter.hasNext()){ //执行过程中会执行数据锁定,性能稍差,若在循环过程中要去掉某个元素只能调用iter.remove()方法。
System.out.println(iter.next());
}
结论:今天突然做到删除集合中的对象,然后用增强for循环在里面删除…发现有问题,数据库中虽然数据删除了但是控制台报错。后来发现要用专用集合删除:迭代器删除。原因是对象不锁定。上面总结别人那边复制的请原谅!