Suspicious 'List.remove()' in loop
Reports list.remove(index)
calls inside an ascending counted loop.
This is suspicious as the list becomes shorter after the removal, and the next element gets skipped. A simple fix is to decrease the index variable after the removal, but probably removing via an iterator or using the removeIf()
method (Java 8 and later) is a more robust alternative. If you don't expect that remove()
will be called more than once in a loop, consider adding a break
after it.
Example:
The code looks like 1 2 3 4
is going to be printed, but in reality, 3
will be skipped in the output.
Locating this inspection
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
SuspiciousListRemoveInLoop- Via Settings dialog
Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.
New in 2018.2
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 242.22892 |