java.util.List に対する containsAll() の呼び出しを報告します。

このメソッド呼び出しの時間計算量は O(n·m) です。n はメソッドが呼び出されるリストの要素数で、m はメソッドにパラメーターとして渡されるコレクションの要素数です。 リストが大きい場合、この処理は非常に負荷が高くなる可能性があります。

クイックフィックスを使用すると、リストが new java.util.HashSet<>() で囲まれます。java.util.List から java.util.HashSet を作成し、java.util.HashSetcontainsAll() を実行するために必要な時間が O(n+m) になるためです。

例:

  public boolean check(List<String> list, Collection<String> collection) {
    // O(n·m) 複雑度
    return list.containsAll(collection);
  }

クイックフィックス適用後:

  public boolean check(List<String> list, Collection<String> collection) {
    // O(n+m) 複雑度
    return new HashSet<>(list).containsAll(collection);
  }

2022.1 の新機能です