Java
'List.remove()' called in loop
Warning
New
Last modified: 03 December 2024 Reports List.remove(index)
called in a loop that can be replaced with List.subList().clear()
.
The replacement is more efficient for most List
implementations when many elements are deleted.
Example:
void removeRange(List<String> list, int from, int to) {
for (int i = from; i < to; i++) {
list.remove(from);
}
}
After the quick-fix is applied:
void removeRange(List<String> list, int from, int to) {
if (to > from) {
list.subList(from, to).clear();
}
}
The quick-fix adds a range check automatically to prevent a possible IndexOutOfBoundsException
when the minimal value is bigger than the maximal value. It can be removed if such a situation is impossible in your code.
- 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.
ListRemoveInLoop
New in 2018.2
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |
Thanks for your feedback!
Was this page helpful?