简单聊聊JAVA中forforeach区别
一、区别
1)for循环是基于下标(偏移量)来定位的循环。
2)foreach是基于指针直接移动(地址运算)的循环。
3)foreach与for循环的明显差别在于foreach循环时循环对象(数组、集合)被锁定,不能对循环对象中的内容进行增删改操作。
二、两者效率比较
对于通过下标访问的数据结构。例如数组,Arraylist 使用下标访问的for循环效率本身就很高。所以foreach这种指针直接移动的效率可能甚至不如通过下标访问。但差别不会太大
但对于链式结构LinkedList,for基于下标访问会每次从头查询,最好不要使用for。foreach循环使用指针直接偏移的高效的地址运算,效率会高非常多,差距也很大。链表循环超过10万次for循环可能会直接卡死,而foreach仍然只需要几毫秒。
例:普通for循环
package ch02;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] str = {"a","b","c"};
for (int i = 0; i < str.length; i++) {
if(str[i]=="b") {
str[i]="d";
}
}
System.out.println(Arrays.toString(str));
}
}
//运行结果:[a, d, c]
增强for循环:
package ch02;
import java.util.Arrays;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
String[] strs = {"a","b","c"};
for (String str : strs) {
if(str=="b") {
str="d";
}
}
System.out.println(Arrays.toString(strs));
}
}
//运行结果:[a, b, c]
结论:需要循环数组结构的数据时,建议使用普通for循环,因为for循环采用下标访问,对于数组结构的数据来说,采用下标访问比较好。
需要循环链表结构的数据时,一定不要使用普通for循环,数据量大的时候有可能会导致系统崩溃。
融化的脸,怀孕的男人?iOS15全新表情符号9月15日,苹果发布了全新的iPhone13系列,并宣布iOS15正式版将于9月20日星期一作为免费软件通过OTA提供更新。AppleInsider消息,预计推出的表情符号包括融化
三星GalaxyS21FE发布在即,GalaxyA73镜头模组大幅升级虽然三星GalaxyS22系列手机的发布时间有望再度提前,不过仍然存在数月的空档期,而根据三星尚未发布的新品型号来看,三星GalaxyS21FE无疑拥有最高的关注度。而在近日,型号
彩霞养老互联网养老,让老年人更好享受智慧养老长期以来,在各种传统的养老模式中,都有一个非常严重的认识误区,那就是往往一说到养老问题,大家就会想到是这样一个老人群体。在实践社区养老居家养老新模式的同时,互联网也逐渐融入老年人的
保障老年人金融消费安全数字人民币也适老现实挑战国家反诈中心App话题使社会对老年群体更加关注,金融消费如何跨越数字鸿沟?应对策略政府和金融部门多渠道保障老年人金融消费权益,数字人民币也持续进行适老化建设。近日,国家反诈
听彩音响打好组合拳,听梦想之声这几十年来,全球音响界风起云涌,品牌无数。说到音响品牌,很多人首先想到的可能是一些知名的大品牌。虽然近年来外资音响品牌大举进入国内给国货品牌造成了一定的冲击,但是一个名为听彩的品牌
苹果13值不值得购买近日,果粉期待的苹果13已陆续开始售卖,但是,相信很多人心中都有着疑虑。苹果13到底值不值得购买呢,接下来洋sir为你们解答首先我们从外观看,苹果13有了更小了刘海屏,后置摄像头有
iPhone12为什么价格暴降?国产手机是否受影响而调价?iPhone13的发布上市是iPhone12降价的主要原因之一。去了几家实体店,13销售还是比较火爆的,iPhone12的降价促销,人气也比较火爆,这波超作苹果估计是达到了市场逾期
为什么有人说服务器CPU垃圾?我是雪鹿,是一名科技领域创作者,希望我的回答可以对你有帮助。为什么有人说服务器CPU垃圾?我觉得说服务器CPU垃圾的原因有两点第一主频低,游戏体验差点被当成垃圾什么是服务器CPU,
256GB内存65W闪充,3199元降至1799元,手机降价就能买吗?降价,可以说是手机市场常见的营销手段了,尤其是在各种电商活动频繁的现在,手机降价刺激销量更是司空见惯。不少人就等着618双11这样的电商节日来更换新手机,因为在这些节日商家往往会给
人工智能除了刷脸,还有什么落地成果呢?刷脸只是人脸辨识,数据核对而已,几乎还不怎么算是很高级的智能化应用。所谓智能,是要在收到信息(数据)之后,还要能采取相对应的合理的对策才行。所以,收到数据后,首先是要有数据的分析,
iPhone13系列开售秒没,苹果官网崩溃。9月17日晚间,苹果iPhone13系列智能手机开始在苹果官网和各大电商平台开启预售。预售开始后不久,各平台均遭遇秒没状况,苹果官网也出现页面卡顿等状况。晚上21时许,话题苹果官网