转 list三种遍历效率
第一种:迭代器遍历
for(Iterator<String> it = list.iterator(); it.hasNext(); ) {
....
}
....
}
这种方式在循环执行过程中会进行数据锁定,性能稍差,同时如果你想在循环过程中去掉某个元素,只能调用it.remove方法,不能使用list.remove方法
第二种:增强for循环
for(String data : list) {
.....
}
.....
}
内部调用第一种,换汤不换药,因此比Iterator慢,这种循环方式还有其他限制,不建议使用它
第三种:
for(int i=0; i<list.size(); i++) {
A a = list.get(i);
...
}
A a = list.get(i);
...
}
内部不锁定, 效率最高, 但是遍历时list.remove会导致list的索引发生变化,所以很容易出现问题
结论:遍历访问:使用for循环
遍历移除:使用iterator循环