Java中 List的遍历
2009-03-04 11:55
399 查看
import java.util.ArrayList; import java.util.Iterator; import java.util.List; 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 } } public class ListTest2 { public static void main(String[] args){ List list = new ArrayList(); list.add(new Integer(100)); list.add(new Float(150.60)); list.add(new String("abc")); for(Iterator i = list.iterator(); i.hasNext();) System.out.println(i.next()); // List<Integer> list = new ArrayList<Integer>(); // list.add(1); // list.add(2); // list.add(3); // for(Integer i : list){ // System.out.println(i); // OK // } } } //虽然List的Generic是Integer,但.next()返回的类型是Object public class ListTest3 { 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();){ // Integer integerRef = (Integer) i.next(); //line 1 // //Compile Error // System.out.println(integerRef); // line 2 // } List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); for (Iterator<Integer> i = list.iterator(); i.hasNext();) { Integer integerRef = i.next(); // line 1 // OK System.out.println(integerRef); // line 2 } } }
对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);
...
}
内部不锁定, 效率最高, 但是当写多线程时要考虑并发操作的问题!
相关文章推荐
- Java中List集合的遍历
- Java中List集合的遍历
- JAVA List 一边遍历一边删除元素,报java.util.ConcurrentModificationException异常
- Java Iterator遍历List集合
- java关于集合(list,set,map)的遍历与增强for循环的使用
- Java 分批次遍历List集合
- java中循环遍历删除List和Set集合中元素的方法
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- Java如何在List或Map遍历过程中删除元素
- java中遍历list的4中方法
- java中List、Set、Map集合遍历的几种方式小结和比较
- java List几种遍历方法
- 【JAVA基础】遍历list<Entity>,获取id数组
- java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
- JAVA--List接口的四种遍历方法
- java中List的遍历
- JAVA中List遍历时如何remove元素
- 【转】Java中 List的遍历
- Java遍历List,删除自身元素
- java list遍历方法对比