私はWikipediaのUnion Findアルゴリズムを知っていて、それらの小さな実装を見つけることができますが、Java自身も同様のアルゴリズムをSetに使用していますか?もしそうなら、私は車輪を記録せずにJavaのセットを使用することを好むでしょう...JavaのSetはUnionFindアルゴリズムを実装していますか?
答えて
Javaのセットインターフェイスは、ユニオン検索構造とは全く異なる操作をサポートしているため、全く異なるユースケースに適しています。
JavaにDisjoin-Setデータ構造がありますか?今では単純化したものから複合体へのHashMap を使用しています。それぞれの複合体はシンプルセットを記憶しています –
propaganda
@propaganda:標準APIには何もありませんが、インターネット上で実装を見つけることができます。 –
AFAIKいいえ、2つのセットの和集合を作成するには、一般的な方法は1つのセットをコピーして、 (または、両方のセットのすべての要素を同じセットにコピーします)。
Set<E> set1, set2;
Set<E> union = new HashSet<E>(set1);
union.addAll(set2);
最初の回答に同意します。さらに、Set内の要素を見つけるには、containsメソッドを使用する必要があります。その署名は以下の通りです。
public boolean contains(Object o)
Returns true if this set contains the specified element. More formally, returns true if and only if this set contains an element e such that (o==null ? e==null : o.equals(e)).
Specified by:
contains in interface Collection<E>
Parameters:
o - element whose presence in this set is to be tested.
Returns:
true if this set contains the specified element.
Throws:
ClassCastException - if the type of the specified element is incompatible with this set (optional).
NullPointerException - if the specified element is null and this set does not support null elements (optional).
さらに、3つのセットの実装は全く異なります。その要素をハッシュテーブルに格納するHashSetは、最も優れた実装です。反復の順序に関しては保証しません。要素を赤黒のツリーに格納するTreeSetは、値に基づいて要素を順序付けします。 HashSetよりもかなり遅いです。 LinkedHashSetは、リンクされたリストを持つハッシュテーブルとして実装され、セットに挿入された順序(挿入順序)に基づいて要素を順序付けします。 LinkedHashSetは、クライアントをHashSetによって提供される不特定の、一般的に混沌とした順序からわずかに高いコストで守ります。
- 1. JavaアルゴリズムはCまたはjavaで実装されていますか?
- 2. このアルゴリズムを正しく実装していますか?
- 3. "Heapify"アルゴリズムを正しく実装していますか?
- 4. ロボットに追従してPIDアルゴリズムを実装しています
- 5. SerialPortEventListenerを実装しています - java
- 6. Connected Component Labelingアルゴリズムの実装を探しています
- 7. javacのオーバーロード解決アルゴリズムを実装しているJavaコードを探しています
- 8. 私はクラスのdijkstraのアルゴリズムを実装しようとしています
- 9. SVM-RFEアルゴリズムの実装は
- 10. Math.randomの実装はどのアルゴリズムに基づいていますか?
- 11. CRCアルゴリズムの実装
- 12. A *アルゴリズムの実装
- 13. DDAアルゴリズムの実装
- 14. なぜjavaのHttpServletがシリアライザブルを実装していますか?
- 15. 私たちはTimeSpanクラスのJavaを実装しています
- 16. Java EE - 誰が仕様を実装していますか?
- 17. SunのJava SSL実装でメモリがリークしていますか?
- 18. JavaのLinkedListにはデフォルトイテレータが実装されていますか?
- 19. バベルはSet/Mapポリフィルをどのように実装しますか
- 20. Javaでマルチコアのアルゴリズムを実装するにはどうしたらいいですか?
- 21. はJavaでRC5暗号化を実装しています
- 22. は、Javaでvs extends genericsを実装しています
- 23. 私はファクトリデザインパターンをJavaで実装しています
- 24. プリムのアルゴリズムの実装
- 25. Pythonでのアルゴリズムの実装
- 26. 星のアルゴリズムの実装
- 27. CodeFights:ダイクストラのアルゴリズムの実装
- 28. Bentley-Ottmannアルゴリズムの実装
- 29. Bellman-Fordアルゴリズムの実装C++
- 30. Fisher Yatesアルゴリズムの実装
disjoint-set操作を意味しますか? – orezvani