我同意 foreach 循环减少了打字并且有利于可读性。
稍作备份,我从事低延迟应用程序开发,每秒接收 100 万个数据包进行处理。遍历一百万个数据包并将此信息发送给其侦听器。我正在使用 foreach 循环遍历一组侦听器。
进行分析时,我发现创建了很多Iterator 对象来执行 foreach 循环。将 foreach 循环转换为基于索引的 foreach 我观察到通过减少 no 来创建的对象数量大幅下降。GC 和增加应用程序吞吐量。
编辑:(抱歉混淆,使这个 Q 更清晰)例如,我有听众列表(固定大小),我每秒循环通过这个 forloop 一百万次。foreach 在 java 中是不是有点矫枉过正?
例子:
for(String s:listOfListeners)
{
// logic
}
相比
for (int i=0;i<listOfListeners.size();i++)
{
// logic
}
代码的配置屏幕截图
for (int cnt = 0; cnt < 1_000_000; cnt++)
{
for (String string : list_of_listeners)
{
//No Code here
}
}