List.remove(index) で、List.subList().clear() に置換できるものを報告します。
多くの要素を削除する場合、ほとんどの List の実装ではこの置換を行うほうが効率的です。
例:
void removeRange(List<String> list, int from, int to) {
for (int i = from; i < to; i++) {
list.remove(from);
}
}
クイックフィックス適用後:
void removeRange(List<String> list, int from, int to) {
if (to > from) {
list.subList(from, to).clear();
}
}
このクイックフィックスは範囲チェックを自動的に追加し、最小値が最大値よりも大きい場合に IndexOutOfBoundsException が発生するのを阻止します。 そのような状況がコードで発生し得ない場合は、範囲チェックを除去できます。
2018.2 の新機能です