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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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);
}
它们之间有什么区别吗?

评分

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

查看全部评分

10 个回复

正序浏览
亲  如果问题已解决请把类别改为已解决,谢谢。
回复 使用道具 举报
增强for循环(JDK.15开始支持):
  
  适用情景:遍历数组,而不对角标指针进行操作

  语法 : for(type变量名: 集合名){...}

  增强for循环的特点:没有角标指针,不能通过指针对元素进行操作。
  
  注意事项:
  ① 迭代变量必须在( )中定义
  ② 集合可以是数组;或者是实现了Interable接口的集合类

普通for循环,属于流程控制的一种,从Java出生就开始存在了。

语法: for(循环初始语句;循环控制条件;循环迭代操作){ 循环体 }

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 很给力!

查看全部评分

回复 使用道具 举报
meng 高级黑马 2013-8-23 00:48:41
9#
简单讲:高级for循环用来遍历集合与数组,
           普通for循环用来遍历数组,不能遍历集合。
回复 使用道具 举报
加油  楼主
回复 使用道具 举报
当你只需要遍历查看数组里面的数值的时候用这种增强for很省事便捷 而如果你要对数据进行操作的时候肯定用到for了啊
回复 使用道具 举报
当你只需要遍历查看数组里面的数值的时候用这种增强for很省事便捷 而如果你要对数据进行操作的时候肯定用到for了啊
回复 使用道具 举报


普通的

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);//

错误!







}  

  

评分

参与人数 2技术分 +2 收起 理由
黄兴旺 + 1 亲 下次要排版好啊!! 论坛有教怎样排版.
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
楼上正解,被遍历的只能是数组和集合,集合必须实现iterable接口,但是高级for有一个局限性。必须有被遍历的目标。
建议在遍历数组的时候,还是用传统for。因为传统for可以定义脚标。

回复 使用道具 举报
高级for循环主要用来对数组,实现了Iterator接口的集合进行遍历
普通for循环可以再遍历的时候,对数组或者集合进行操作,因为那个变化的变量可以作为角标
回复 使用道具 举报
高级for循环  jdk1.5以后出现  带着泛型 就可以使用泛型
  for(数据类型 变量名:被遍历的集合(Collection)或者数组)简化书写

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 赞一个!

查看全部评分

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