社区
Java SE
帖子详情
foreach过程中,如果读取它的计数器。类似(for int i;;) 的那个i
孤尽JavaSea
2010-03-12 02:19:08
如果foreach没有这个功能,只能用for(;;)了。
...全文
547
13
打赏
收藏
foreach过程中,如果读取它的计数器。类似(for int i;;) 的那个i
如果foreach没有这个功能,只能用for(;;)了。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BearKin
2010-03-14
打赏
举报
回复
[Quote=引用 9 楼 bao110908 的回复:]
原理是这样的:
一、对于实现了 Iterable 接口中类,编译器内部转换成类似这样的格式:
for(Iterator<T> i = list.iterator(); i.hasNext(); ) {
T t = i.next();
}
二、对于数组,编译器内部转换成类似这样的格式:
for(int i = 0; i < nums.length; i++) {
int n……
[/Quote]
您的意思是用for(int i : ints) 假设后面的是数组 在里面可以用i?...
GG_wg
2010-03-13
打赏
举报
回复
String[] strs = {"1","2"};
int i =0;
foreach(String str : strs){
System.out.println(str);
i++;
}
dinghun8leech
2010-03-13
打赏
举报
回复
[Quote=引用楼主 java_gannbare 的回复:]
如果foreach没有这个功能,只能用for(;;)了。
[/Quote]
foreach在遍历集合类时又没有for循环快,何必一定要用foreach?
shen8
2010-03-13
打赏
举报
回复
顶楼上。。。路过
火龙果被占用了
2010-03-13
打赏
举报
回复
原理是这样的:
一、对于实现了 Iterable 接口中类,编译器内部转换成类似这样的格式:
for(Iterator<T> i = list.iterator(); i.hasNext(); ) {
T t = i.next();
}
二、对于数组,编译器内部转换成类似这样的格式:
for(int i = 0; i < nums.length; i++) {
int n = nums[i];
}
孤尽JavaSea
2010-03-13
打赏
举报
回复
foreach原理是不是这样的:
Collection x = new ArrayList();
x.add(1);x.add(2);
Iterator y = x.iterrator();
while(x.hasNext){
......
}
BearKin
2010-03-12
打赏
举报
回复
for(;;)吧
for each是个简写 他实际实现LZ可以上网搜索下 集合是用Iterator 数组我倒是不知道
孤尽JavaSea
2010-03-12
打赏
举报
回复
还有更好的建议吗?
小李子
2010-03-12
打赏
举报
回复
int i = 0;
foreach()
{
//i
i++;
}
孤尽JavaSea
2010-03-12
打赏
举报
回复
再次求助。
孤尽JavaSea
2010-03-12
打赏
举报
回复
foreach 如何写入i
zliuzz
2010-03-12
打赏
举报
回复
顶楼上。。。路过
APOLLO_TS
2010-03-12
打赏
举报
回复
i++写进程序内部,不就行了。
Java的“ for each”循环如何工作?
考虑: List<String> someList = new ArrayList<String>(); // add "monkey", "donkey", "skel
C#
中
using和
foreach
为何不是语法糖而是语言级设计
在.NET开发
中
,资源管理与集合遍历是基础而高频的编程任务。其底层原理涉及IDisposable契约、IEnumerator状态机及编译器生成的确定性IL结构,技术价值在于降低心智负担、保障异常安全、消除模板代码冗余。典型应用场景包括文件流处理、数据库查询枚举、异步资源释放等,尤其在高可靠性系统
中
,原生语法相比类库方案具备零分配、零异常干扰、深度JIT优化等不可替代优势。本文深入剖析using语句的finally防护机制与
foreach
对泛型枚举器的直接调用优化,揭示其作为语言原语而非语法糖的本质。
深入理解IEnumerable<T>:
foreach
背后的迭代协议与性能本质
IEnumerable
是 .NET
中
实现集合遍历的核心接口协议,它定义了‘可被逐一访问’这一行为契约,而非数据容器本身。其原理基于 GetEnumerator()、MoveNext() 和 Current 三要素构成的迭代器模式,并天然支持延迟执行(Deferred Execution)——即仅在
foreach
或 ToList() 等消费时才触发实际计算。这一机制赋予了 LINQ 链式调用高效的数据流水线能力,但也带来重复执行、内存泄漏和 IO 风险等技术挑战。在电商订单导出、日志流解析、实时
C#
foreach
深度解析:从底层机制到性能优化与避坑指南
在C#开发
中
,集合遍历是高频操作,而
foreach
并非简单的循环语法糖,其本质是编译器基于迭代器模式的展开。理解GetEnumerator、MoveNext与Current的底层协作,以及集合版本检查机制,是规避运行时异常的关键。从数组到List
再到LinkedList,不同数据结构的遍历性能差异巨大,合理选择for、
foreach
或LINQ直接影响系统效率。随着C# 8.0引入异步流,await
foreach
为处理IAsyncEnumerable提供了优雅的流式数据消费方式。本文深入剖析forea
深入理解 C#
中
的 continue 语句:原理、应用与最佳实践
本文深入解析C#
中
continue语句的使用方法与实践要点。continue语句用于跳过当前循环迭代的剩余代码,直接进入下一次迭代,在for、while、do...while和
foreach
等循环结构
中
均可使用。文章详细介绍了其语法机制、适用场景(如数据清洗、性能优化和错误处理),并对比了与break语句的区别。特别指出C#
中
continue不支持标签跳转,在LINQ
中
可用Where替代。通过实例分析了常见陷阱(如无限循环风险)和性能考量,建议合理使用以平衡代码清晰度与效率。最后强调应根据实际情况选择最佳控
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章