Reports for loops which iterate over collections or arrays, and can be replaced with the foreach iteration syntax, available in Java 5 and newer.

Use the first checkbox below to find loops involving list.get(index) calls. These loops generally can be replaced with the foreach loops, unless they modify underlying list in the process, e.g. by calling list.remove(index). If latter is the case, foreach form of loop may throw ConcurrentModificationException.

Use the second checkbox below to ignore collections which do not have type parameters. This avoids the creating of foreach loop variables of type java.lang.Object and casts by the quickfix

This inspection only reports if the language level of the project or module is 5 or higher