for循环和foreach循环的区别与快慢:
foreach请看:java的foreach循环
- for循环是基于下标(偏移量)来定位的循环。
- foreach是基于指针直接移动(地址运算)的循环。
- 对于通过下标访问的ArrayList。使用下标访问的for循环效率本身就很高。所以foreach这种指针直接移动的效率可能甚至不如通过下标访问。但差别不会太大
- 但对于链式结构LinkedList,for基于下标访问会每次从头查询,最好不要使用for。foreach循环使用指针直接偏移的高效的地址运算,效率会高非常多,差距也很大。链表循环超过10万次for循环可能会直接卡死,而foreach仍然只需要几毫秒。