本人打算从今天起,学习一点就进行总结一下,在这个知识爆炸的信息时代,信息实在是太多了,所以我们这些做"挨踢"的一定要对自己所学的知识进行总结并进行归档.在我过去的学习和工作过程中,虽然自己知道做笔记和总结的重要性,但是很少做笔记和总结,我现在也意思到了这一点,所以决定从今天开始,对自己所学的知识进行总结的归纳,以免在以后的学习和工作中即使忘记了也可以再回到博客中进行查询
好了,废话就少说了,这次总结的主要是有关对List的遍历,为什么我要对这个东西进行总结了,在现在的工作中,List的使用是很频繁的,但是我总是记不住,总是在需要用的时候还要去百度和谷歌,所以现在现在我将它记在博客里,以便以后查询.
方法一:
import java.util.List; import java.util.ArrayList; import java.util.Iterator; public class ListTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); for (Iterator i = list.iterator(); i.hasNext();) System.out.println(i.next()); // line 1 } }
方法二:
import java.util.List; import java.util.ArrayList; import java.util.Iterator; public class ListTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); for(Integer i : list){ System.out.println(i); // OK } } }
方法三:
import java.util.List; import java.util.ArrayList; import java.util.Iterator; public class ListTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); for(int i =0; i < list.size(); i ++){ System.out.println(list.get(i)); // OK } } }
对List的遍历有三种方式
List<A> list = new ArrayList<A>();
list.add(new A());
list.add(new A());
...
第一种:
for(Iterator<A> it = list.iterator(); it.hasNext(); ) {
....
}
这种方式在循环执行过程中会进行数据锁定, 性能稍差,同时,如果你想在循环过程中去掉某个元素,只能调用it.remove方法, 不能使用list.remove方法, 否则一定出并发访问的错误.
第二种:
for(A a : list) {
.....
}
内部调用第一种, 换汤不换药, 这种循环方式还有其他限制, 不建议使用它
第三种:
for(int i=0; i<list.size(); i++) {
A a = list.get(i);
...
}
内部不锁定, 效率最高, 但是当写多线程时要考虑并发操作的问题!