【IT168 技术文档】很早就听说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 { 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 list = new ArrayList(); 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) 性能没有改变,因为编译时会转化为和原来写法一样的字节码,只是有时候写代码省时间而已!不用考虑边界问题!