java中for与foreach的区别?

请教一下,java中for与foreach的区别?
具体一下。

就编码来说各有好处:for更灵活,foreach更简便

就性能来说:看图。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-19
1.如果只是遍历集合或者数组,用foreach好些,快些。
2.如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。举个例子:
for(String aid:list){
if(aid.equals("aa")){
list.remove(aid); //这行会报错,不能修改list的长度
}
}
所以foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句。
第2个回答  2013-09-05
for和foreach都是java中重要的集合遍历方法 for循环中 你可以选择从前往后遍历 也可以从后往前遍历 也可以不遍历默写值 但是foreach只能从前往后遍历 而且每一个都会遍历一次 他们之间的选择得看你项目程序中的需求而定
第3个回答  2013-09-05
         // 1
         for (int i = 0; i < list.size(); i++) {
            int item = list.get(i);
            System.out.println("这是第" + (i+1) + "个:值为:" + item);
        }
        // 2
        int j = 0;
        for (int i : list) {
            ++j;
            System.out.println("这是第" + j + "个:值为:" + i);
        }

根据需要,使用不同的方法

如果需要对序列做处理用第一个

如果不需要做处理可以用第二个

本回答被网友采纳
第4个回答  2013-09-05
在JDK5.0中加入了一个新的特性,那就是FOR-EACH循环。FOR-EACH循环使得代码更加的简短,也让代码更加易懂,其实他并没有加入什么新的功能。他的功能完全可以用简单的FOR循环代替。
JVM在解释执行行,都会将for与foreach解释成iterator。

简述for与foreach语句的区别
for循环和foreach循环的主要区别在于它们的迭代方式和适用场景。For循环更为通用和灵活,而foreach循环则更简洁且专注于集合元素的遍历。详细解释如下:首先,for循环是一种通用的循环结构,在编程中广泛使用。它通过指定循环的初始条件、循环条件和迭代步骤来控制循环的执行。例如,在C#或Java中,一个典型的...

java为什么 foreach比for效率高
(1)for是使用下标(偏移量)定位的.(2)foreach应该是使用类似循环子的机构 (3)对随机访问效率高的ArrayList. 使用下标访问效率本身很高.foreach内部的循环子直接封装下标,自己实现的for比foreach更直接,效率稍高些,但差别不会太大,仍然在一个数量级上。 (4)如果使用插入和删除效率高的LinkedList,f...

Java的for循环、增强for循环、lambda表达式中的forEach三种方式优缺点...
1. 对于for循环,其优势在于能够直接访问元素的下标,这使得定位更加精确。由于下标变量是循环内的局部变量,它们在循环结束后会自动释放。此外,下标变量的步长可以灵活设置。2. for循环的劣势在于,它仅适用于有序集合和数组,因为需要通过下标来获取元素。对于无序集合如Set或映射集合如Map,for循环无法...

for和foreach那个好用?
还有 foreach这个循环原来JAVA里面是没有的,是C#里面先出现后,JAVA抄袭过去的。主要用来读取 对象或遍历集合 for循环用来读取数据的比较多。如果是对象或集合 或泛型集合这些 用for循环只能通过下标来读取,所以很不方便。 而且字典型的集合 用for循环也是不可能读取的。同样foreach也无法通过下标来读取对...

在循环语句中,for和for有什么区别
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句...

java中for或foreach遍历数组问题。
自从Java5中引入了foreach语句之后,在循环遍历数组、集合方面带来了极大的方便,但是在用foreach的时候也要注意其与for循环是不能完全划等号的。在使用foreach遍历数组集合的过程中一定要注意不要修改其内容,在Java程序中会进行报错,但是在有些时候没有错误提示,就会造成花很多时间找不到问题所在。for...

java中foreach的用法
Java中的foreach功能强大,是for语句的简版,尤其在简化代码、提升可读性和安全性方面有明显优势。然而,并非所有情况都适用foreach,它在处理数组或集合索引时表现不如for灵活。foreach的基本语法是:for(元素类型type 元素变量value : 遍历对象obj) { \/\/ 引用元素变量x的Java语句 } 使用foreach,例如...

Java的for循环、增强for循环、lambda表达式中的forEach 三种方式优缺 ...
简单的来说其实三种并没有什么太大的区别,一般情况下的性能也差不多。for循环:优点:可以直接获取下标,能更精确的定位。下标变量属于循环内变量,循环结束会自动回收。下标变量的步长可以自定,比较灵活。缺点:需要根据下标才会获取循环内容。只能循环有序集合和数组,如Set和Map就无法遍历。增强for:优...

Java中的foreach循环是怎么用的?
JAVA中foreach循环使用foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach 语法格式如下:正确用法应该是:

java中for each的用法
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句...

相似回答