A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王卿 黑马帝   /  2011-7-14 12:18  /  4577 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我在视频中看到老师写了一个  for(  arg:args)     这是什么意思呀?又怎么用呢?当时看视频的时候没太在意,谁说说呀!

6 个回复

倒序浏览
黑马网友  发表于 2011-7-14 13:04:51
沙发
java1.5新特性,是增强for循环。。
增强型的for循环优点主要体现在实现了Iterable接口的集合和泛型中,随便举个例子比如对 set 的遍历一般是迭代遍历:
Set<String> set = new HashSet<String>();

Iterator<String> it = set.iterator();

while (it.hasNext()) {

  String str = it.next();

  System.out.println(str);

}

for循环遍历时为:
for (String str : set) {

      System.out.println(str);

}

唯一的缺点就是在遍历集合过程中,不能对集合本身进行操作
for (String str : set) {

  set.remove(str);//错误!

}

评分

参与人数 1技术分 +1 收起 理由
技术测试刘老师 + 1 不错啊,加油!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-14 13:06:35
藤椅

关于for迭代的加强

这是关于for迭代的加强详细的给你举个例子
int sum =0;
for(int i = 0;i<args.leng;i++)
{
sum+ = args;
}//然后打印
如果用这种迭代的话,张老师讲的就是args就是一个数组,然后arg不带s是我们的命名常识,就是指他其中的元素,这也是一种迭代,不是老师,不怎么会表达,你可以去查API上面有关于for迭代的加强,上面很详细的。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-14 13:28:42
板凳
首先我要告诉你这个Java1.5新增的for增强语句只能迭代数组和集合(这个集合必须是实现Iterable接口的集合类,查API里面的Iterable接口里面就介绍着),现在知道了可以迭代这些东西那我就要告诉你for(arg : args)这个for里面的两个参数是什么意思。
  右边的args是一个数组变量名或者是集合变量名,如你定义了一个数组:double[] values = {2.2 , 3.3 , 4.4} ;这时你就可以把values作为for右边的那个参数。左边的参数意思是:如果右边的数组或者集合里面存放着什么类型的值,你就要把左边的参数定义成什么类型的,像这个数组如果你要打印的话就要这样:
  for(double value : values){
        System.out.println(value) ;
    }
  value就是每次你从values这个数组里取出的一个值然后赋值给它的,所以value的类型必须要跟数组的类型一样,不然就会发生异常(集合也是一样) ;

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-14 14:55:46
报纸
这个题没劲,那日苏童鞋已经答得很完善了。至于不能对集合本身进行操作,我想可能是链式储存的原因吧,不知道正确否?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-27 19:15:14
地板
for 循环迭代加强的问题
视频里的代码就相当于
int sum=0;
for(int i=0;i<args.length;i++)
{sum+=i;}

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-27 22:22:44
7#
说的简单点就是在for(arg:args)中,args就是一个集合,而arg就是集合中的元素,只不过在遍历时,会把args中的元素依次赋值给arg;来实现依次访问args中的元素。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马