foreach反復対像とIterator反復器対像

1798 ワード

package com;

import java.util.ArrayList;  
import java.util.Iterator;
import java.util.List;  
  
class Peop {  
  
    private String name;  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
}  
  
  
public class Hello {  
  
    public static void main(String agr[]) {  
        Peop p = new Peop();  
        p.setName("yangxin");  
        Peop p2 = new Peop();  
        p2.setName("zhuxiaofei");  
        
        // 2       ArrayList   。
        List<Peop> list = new ArrayList<Peop>();  
        list.add(p);  
        list.add(p2); 
        
        
        //    foreach    ,for (Peop x : list) ,         Peop     x,      list     x。
        for (Peop x : list) {  
            System.out.println(x.getName());  
        }
        
        
        System.out.println();
        
        
        //    Iterator       
        Iterator<Peop> iter = list.iterator();
           //  Iterator    hasNext()  iter    
           while(iter.hasNext()){
           // Iterator    next()    iter      
           Peop str = (Peop)iter.next();
           System.out.println(str.getName());
         }

    }  
}  

出力:
yangxin
zhuxiaofei
yangxin
zhuxiaofei
ここではforeachを使用することはIterator反復器を使用するよりも簡単で便利であるが,foreachを使用することはIterator反復器を使用することと明らかなポテンシャルがあり,foreachは反復時に容器の操作が困難であるため,一般的に印刷(表示)に用いられ,Iterator反復器は容器内の要素を操作するのに便利であることがわかる.