黑马程序员技术交流社区
标题:
普通for循环和高级for循环有什么区别
[打印本页]
作者:
一个铃,一颗珠
时间:
2013-8-22 17:42
标题:
普通for循环和高级for循环有什么区别
本帖最后由 forward 于 2013-8-23 18:26 编辑
string[] strs = {"xin","qing","abc","dcd"};
普通循环:
for(int i=0;i<strs.length;i++){
system.out.println(strs
);
}
高级循环:
for(string str : strs){
system.out.println(str);
}
它们之间有什么区别吗?
作者:
夜默
时间:
2013-8-22 17:56
高级for循环 jdk1.5以后出现 带着泛型 就可以使用泛型
for(数据类型 变量名:被遍历的集合(Collection)或者数组)简化书写
作者:
坚持远方
时间:
2013-8-22 18:16
高级for循环主要用来对数组,实现了Iterator接口的集合进行遍历
普通for循环可以再遍历的时候,对数组或者集合进行操作,因为那个变化的变量可以作为角标
作者:
张聪珉
时间:
2013-8-22 18:17
楼上正解,被遍历的只能是数组和集合,集合必须实现iterable接口,但是高级for有一个局限性。必须有被遍历的目标。
建议在遍历数组的时候,还是用传统for。因为传统for可以定义脚标。
作者:
xinchenglong
时间:
2013-8-22 19:16
普通的
for
循环:
public class test {
public static void main(String[] args) {
int a[]={0,1,2,3,4,5,6,7,8,9};
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
增强型的
for
循环:
public class test {
public static void main(String[] args) {
int a[]={0,1,2,3,4,5,6,7,8,9};
for(int i :a){
System.out.print(i+" ");
}
}
}
在上面这个例子
增强型的
for
循环
和普通
for
循环一样
增强型的
for
循环
优点主要体现在集合中,随便举个例子
比如对
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);
}
是不是简单些
?
优点还体现在泛型
假如
set
中存放的是
Object
Set<Object> set = new HashSet<Object>();
for
循环遍历:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
}else if(obj instanceof String){
String aa = (String)obj
}
........
}
如果你用
Iterator
遍历,那就晕了
map list
也一样
唯一的缺点就是
在遍历
集合过程中,不能对集合本身进行操作
for (String str : set) {
set.remove(str);//
错误!
}
作者:
穿靴子的猫
时间:
2013-8-22 22:02
当你只需要遍历查看数组里面的数值的时候用这种增强for很省事便捷 而如果你要对数据进行操作的时候肯定用到for了啊
作者:
穿靴子的猫
时间:
2013-8-22 22:02
当你只需要遍历查看数组里面的数值的时候用这种增强for很省事便捷 而如果你要对数据进行操作的时候肯定用到for了啊
作者:
袁梦希
时间:
2013-8-22 22:05
加油 楼主
作者:
meng
时间:
2013-8-23 00:48
简单讲:高级for循环用来遍历集合与数组,
普通for循环用来遍历数组,不能遍历集合。
作者:
王延龙
时间:
2013-8-23 03:23
增强for循环(JDK.15开始支持):
适用情景:遍历数组,而不对角标指针进行操作
语法 : for(type变量名: 集合名){...}
增强for循环的特点:没有角标指针,不能通过指针对元素进行操作。
注意事项:
① 迭代变量必须在( )中定义
② 集合可以是数组;或者是实现了Interable接口的集合类
普通for循环,属于流程控制的一种,从Java出生就开始存在了。
语法: for(循环初始语句;循环控制条件;循环迭代操作){ 循环体 }
作者:
黄兴旺
时间:
2013-8-23 16:55
亲 如果问题已解决请把类别改为已解决,谢谢。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2