大家好,又见面了,我是全栈君。
很早就听说Java5新增的for/in循环,以前也曾写过一些demo,今天有空来总结一下:
1. for/in循环的等价
int[] arraySrc =
new
int[100];
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;
}
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);
}
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());
}
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;
int ii:arraySrc;
int jj:arrayDest)
//error
ii = 1;
即使写成
for (
int ii:arraySrc,
int jj:arrayDest)
//error
ii = i;
int ii:arraySrc,
int jj:arrayDest)
//error
ii = i;
也是编译错误!
(2) 性能没有改变,因为编译时会转化为和原来写法一样的字节码,只是有时候写代码省时间而已!不用考虑边界问题!
本文转自 Icansoft 51CTO博客,原文链接: http://blog.51cto.com/android/56361
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107894.html原文链接:https://javaforall.net
