Java中 List的遍历

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(); [color=green]// line 1 [/color]  
   // OK      System.out.println(integerRef); // line 2    }   
 }   
}   
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);  
       ...  
   }  
   内部不锁定,    效率最高,    但是当写多线程时要考虑并发操作的问题! 



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Player26/archive/2009/03/04/3955906.aspx

你可能感兴趣的:(java,多线程,.net,Blog)