2016-04-06 14 views
0

ArrayList メソッドの違いは何ですか?また、重複したフィルタリングとそれを使用する利点がありますか?ArrayList contains()メソッドとduplicate filterationの違い

+0

データ構造とアルゴリズムに関するクラスを取るべきです – ControlAltDel

+0

ArrayList.contains()メソッドは、オブジェクトがArrayListに含まれている場合にtrueを返します。 _set duplicate filteration_を詳しく教えてください。 – sshah

+0

セットに値を挿入している間、重複は許可されません。しかし、containsメソッドを使ってarrayList内で同じ機能を実現することができます。なぜユニークな要素にセットを使用する必要があるのですか?セットを使用することによって利点があるかどうかを説明してください(パフォーマンスなどに関して) –

答えて

0

Setをお持ちの場合は、equalsに基づいて重複要素を含めることはできません。 Listを使用すると、自動的には行われません。あなたは

if(!list.contains(element)){ 
    list.add(element); 
} 

が、それはあなたの使用パターンに依存し、パフォーマンスに関してはWhat is the difference between Set and List?

も参照使用しなければならないでしょう。頻繁に行う操作によって異なります。とにかく、パフォーマンスを最適化するために特別な要件がない場合は、Setを使用してください。意図が明確になるからです。

+0

ありがとうございます。しかし、私たちが要素を追加する際にArrayList contains()メソッドの代わりにSetを使用します。何がベストプラクティスで、なぜですか? –

+0

@PavithraReddy:私の答えを更新しました – user140547

0

セットは重複がないことを保証します。重複のないコレクションを作成したい場合は、Setを使用すると、重複排除を自分で行う必要はありません。したがって、少ないコードを書いたり、テストしたり、デバッグする必要があります。それはあなたの生産性を高めます。 Set実装のコードで記述したコードを置き換えます。そのコードの作者はおそらくあなたよりもはるかに優れたプログラマであるため、そのコードは書くことができるコードより効率的で、バギーが少なくなります。特にHashSetの実装は過去の挿入を行います。コレクションやリストではなく、セットを持つあなたのコード(将来を含む)を読んだ人は、コレクションに重複がないことを即座に見ることができます。それはあなたのコードを部分的かつ確実に文書化します。

関連する問題