私は現在Javaを使用していますので、挿入する方が効率的かどうかを知ることにもっと興味があります。それは悪い習慣であるかどうか私はまた興味がありますが。一般に、要素を挿入する前に要素がセットに含まれているかどうかを確認する必要がありますか?
1
A
答えて
3
不要です。 APIは、それが既に存在するかどうかを知る必要がある場合に通知し、コレクションコードは非常に効率的です。自分で確認するよりも効率的です。セットもはとにかくそれををチェックされますので、
Set<Integer> set = new HashSet<Integer>();
boolean newAdditionToSet = set.add(1);
System.out.println(newAdditionToSet); // true
newAdditionToSet = set.add(1);
System.out.println(newAdditionToSet); // false
それは "悪い習慣" です、:
FYI、ここでのアクションでAPIです。既存の要素の作業負荷を維持しながら、新しい要素のワークロードを倍増させるだけです。
1
不要です。 Set.add()があなたをチェックします。
また、要素が追加されたかどうかに基づいてtrueまたはfalseを返します。
1
一般に、要素を挿入する方が効率的です。通常のSet
実装の場合、挿入コードは、既に存在する場合は値を置き換える必要があるため、contains
呼び出しの作業をほとんど複製します。だからを最初に呼び出すのはであり、一般的には時間の無駄であり、一般に悪い習慣です。
必ずしもそうではありません!あなたはセット内の既存の値を置き換えるためにadd
コールをしたくない場合はcontains
を呼び出す必要があり
一つのケースがあります。この状況はときどき発生します。例えばあなたが値の束を正規化するためにセットを使用している場合。
関連する問題
- 1. 要素を挿入する前にunorderd_setに要素が存在するかどうかを確認する
- 2. 配列/リスト内に要素があるかどうかを確認する必要がありますか?
- 3. 要素にjQueryの別の要素が含まれているかどうかを確認する方法
- 4. 要素がjQueryセット内にあるかどうかを確認します
- 5. 要素が最初に存在するかどうか確認する必要がありますか?
- 6. divにph要素のp要素が含まれているかどうかを確認
- 7. Swift - 配列にプロパティのある要素が含まれているかどうかを確認します
- 8. イベントを割り当てる前に要素が存在するかどうかを確認する必要がありますか?
- 9. jQuery:要素のセットにevent.targetが含まれているかどうか確認してください。
- 10. 要素がフォームフィールドであるかどうかを確認する
- 11. マウスが要素の上にあるかどうかを確認しますか?
- 12. リストに既にPythonで要素が含まれているかどうかを確認するには?
- 13. XSDファイルにXML要素が必要とマークされているかどうかを確認する方法
- 14. コレクションにScalaの他のコレクションの要素が含まれているかどうかを確認するには?
- 15. 削除する前に要素にHTMLが含まれているかどうかを確認するにはどうすればよいですか? jQuery
- 16. 要素にクリックハンドラがあるかどうかを確認するにはどうすればいいですか?
- 17. dom要素にハイライトされたテキストが含まれているかどうかを確認します
- 18. リストに要素が含まれていないかどうかを確認するには?
- 19. ArrayListに別のArrayListが要素として含まれているかどうかを確認する
- 20. シーケンスには複数の要素が含まれていますが、複数の要素が含まれている必要があります
- 21. 配列に要素の型が含まれているかどうかを確認します
- 22. どこが素早い要素であるかを確認
- 23. 2つの配列に同じ要素が含まれているかどうかを確認する(swift 2.0)
- 24. ListにStruts2の特定の要素が含まれているかどうかを確認する方法は?
- 25. 配列に要素が含まれているかどうかを確認する方法?
- 26. 文字列に(文字列の)リストの要素が含まれているかどうかを確認する
- 27. 配列に特定の要素が含まれているかどうかを確認するEL
- 28. QML要素がロードされているかどうかを確認する方法はありますか?
- 29. 要素が存在するかどうかを確認する
- 30. 子要素を別の子要素にドロップする必要があります
意味上の違いはなく、パフォーマンス上の利点をもたらす理由はありません。また、2つの冗長なコード行です。どう思いますか? – delnan