很早就听说Java5新增的for/in循环,以前也曾写过一些demo,今天有空来总结一下:
       1.  for/in循环的等价
int[] arraySrc = new int[100];

for ( int i:arraySrc)
{
       i = 1;  
}
 
等价于
 
int[] arraySrc = new int[100];

for ( int i=0; i<arraySrc.length;i++)
{
      arrayScr[i] = 1;
}
 
     2. 冒号左边的类型怎么写?
 
String[][] str= new String[7][];
  
for(String[] s:str)
{
    s = new String[5];
}
  
Vector[] v = new Vector[2];

for(Vector s:v)    
{
        s = new  Vector(2,1);
}
 
     从上面的代码,可以看到 冒号左边的类型是右边变量的内部元素的类型
 
    对于集合的泛型也是适用的  ,冒号左边的类型是泛型元素的类型
List<NewBean> list = new ArrayList<NewBean>();

list.add( new NewBean( "title1"));
list.add( new NewBean( "title2"));
        
for(NewBean bean : list)
{
   System.out.println(bean.getTitle());
}
  
 
     3. ******注意事项******
     (1) 一个for/in循环不能设置多个这样的冒号对
           像以下的,编译时会提示error
for ( int ii:arraySrc; int jj:arrayDest) //error
    ii = 1;
         即使写成
for ( int ii:arraySrc, int jj:arrayDest) //error
    ii = i;
        也是编译错误!
 
     (2) 性能没有改变,因为编译时会转化为和原来写法一样的字节码,只是有时候写代码省时间而已!不用考虑边界问题!