注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 负载均衡技术沙龙问答汇集
 帮助

Java5的for/in循环使用


2007-12-24 15:36:17
 标签:java for/in   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://icansoft.blog.51cto.com/268543/56361
        很早就听说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) 性能没有改变,因为编译时会转化为和原来写法一样的字节码,只是有时候写代码省时间而已!不用考虑边界问题!

本文出自 “Java学习博客-追求完美” 博客,请务必保留此出处http://icansoft.blog.51cto.com/268543/56361





    文章评论
 
2007-12-24 15:41:28
哦 原来如此啊 长知识啦

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: