黑马程序员技术交流社区
标题:
问一下,关于那个FOR语句迭代?
[打印本页]
作者:
王卿
时间:
2011-7-14 12:18
标题:
问一下,关于那个FOR语句迭代?
我在视频中看到老师写了一个 for( arg:args) 这是什么意思呀?又怎么用呢?当时看视频的时候没太在意,谁说说呀!
作者:
匿名
时间:
2011-7-14 13:04
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);//错误!
}
作者:
匿名
时间:
2011-7-14 13:06
标题:
关于for迭代的加强
这是关于for迭代的加强详细的给你举个例子
int sum =0;
for(int i = 0;i<args.leng;i++)
{
sum+ = args;
}//然后打印
如果用这种迭代的话,张老师讲的就是args就是一个数组,然后arg不带s是我们的命名常识,就是指他其中的元素,这也是一种迭代,不是老师,不怎么会表达,你可以去查API上面有关于for迭代的加强,上面很详细的。
作者:
匿名
时间:
2011-7-14 13:28
首先我要告诉你这个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的类型必须要跟数组的类型一样,不然就会发生异常(集合也是一样) ;
作者:
匿名
时间:
2011-7-14 14:55
这个题没劲,那日苏童鞋已经答得很完善了。至于不能对集合本身进行操作,我想可能是链式储存的原因吧,不知道正确否?
作者:
匿名
时间:
2011-7-27 19:15
for 循环迭代加强的问题
视频里的代码就相当于
int sum=0;
for(int i=0;i<args.length;i++)
{sum+=i;}
作者:
匿名
时间:
2011-7-27 22:22
说的简单点就是在for(arg:args)中,args就是一个集合,而arg就是集合中的元素,只不过在遍历时,会把args中的元素依次赋值给arg;来实现依次访问args中的元素。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2