84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
java foreach比for好在哪里
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
个人认为还是能用for 就用for
因为不知道什么时候会在循环体里面根据索引做修改,直接用for就省得以后再改了Orz
因为foreach完全隐藏了迭代器和索引变量,避免了混乱和出错的可能。特别是多重for循环嵌套,i j混用可能出现手误。
只要是实现了Iterable<E>接口的类都可以使用foreach。
foreach用于迭代器,有些集合类型的数据结构也可以用,比如set和Hashmap,这种情况下就不好用数字索引了。
循环链表结构用foreach循环数组结构用for
使用for还是foreach最终还是由数据结构决定,特别要注意链表一定要用foreach,否则会有严重的性能问题
foreach 实际上是调用的集合的迭代接口,迭代过程中集合处于锁定状态,不能追加和删除元素。所以,理论上速度会比较快一些。for 每次都需要查看集合大小,同时其操作在多线程环境会产生数据不同步的问题。如果在检索过程中,需要对集合进行追加,删除操作,建议使用for,同时应考虑多线程安全问题。
个人认为还是能用for 就用for
因为不知道什么时候会在循环体里面根据索引做修改,直接用for就省得以后再改了Orz
因为foreach完全隐藏了迭代器和索引变量,避免了混乱和出错的可能。
特别是多重for循环嵌套,i j混用可能出现手误。
只要是实现了Iterable<E>接口的类都可以使用foreach。
foreach用于迭代器,有些集合类型的数据结构也可以用,比如set和Hashmap,这种情况下就不好用数字索引了。
循环链表结构用foreach循环数组结构用for
使用for还是foreach最终还是由数据结构决定,特别要注意链表一定要用foreach,否则会有严重的性能问题
foreach 实际上是调用的集合的迭代接口,迭代过程中集合处于锁定状态,不能追加和删除元素。所以,理论上速度会比较快一些。
for 每次都需要查看集合大小,同时其操作在多线程环境会产生数据不同步的问题。
如果在检索过程中,需要对集合进行追加,删除操作,建议使用for,同时应考虑多线程安全问题。