hash
とset
の間の唯一の違いは、セットにはキーがないということです。他の重要な違いはありますか?セットとハッシュの違いは?
1
A
答えて
2
すべてのハッシュがセットであるわけではありませんが、ハッシュをセットとして使用できます。
セットは
- 番号なしの値であるコレクションを...ある
- ユニーク
、そのセットは、多くの場合、唯一のキーを持つハッシュとして実装されているので、 。キーはセット内の値として使用されるため、キーを素早く参照して反復することができます。
Perlでは、リストをハッシュに入れて重複排除し、それをセットとして処理するのが一般的です。
my %set = map { $_ => 1 } @values;
RubyのSetクラスはハッシュを囲む薄いラッパーです。たとえば、Set#addとなります。
# File set.rb, line 312
def add(o)
@hash[o] = true
self
end
何かがセットに含まれているかどうかを確認したい場合は、そのハッシュにO(1)ルックアップがあるかどうかを確認してください。
# File set.rb, line 214
def include?(o)
@hash[o]
end
交差点や共用体などのほとんどの設定操作は非常に高速です。交差点は、あるハッシュのキーが他のハッシュ内にあるかどうか、つまりO(n)操作(キー衝突を除いて)があるかどうかをチェックするだけです。これはRubyの仕組みです。
def intersect?(set)
set.is_a?(Set) or raise ArgumentError, "value must be a set"
if size < set.size
any? { |o| set.include?(o) }
else
set.any? { |o| include?(o) }
end
end
ユニオンは、両方のハッシュを1つの新しいハッシュとO(n)操作に結合します。
def |(enum)
dup.merge(enum)
end
+0
私はあなたの最後のテキスト行に '両方のハッシュ 'の参照を混同しました。 –
関連する問題
- 1. オブジェクトとハッシュの違いは?
- 2. 空のハッシュとハッシュなしの違い
- 3. PerlのSDBM_Fileハッシュと通常のハッシュの違いは?
- 4. リストをセットにするときのリストとセットの違い
- 5. Pythonのセット()メンバーシップとハッシュ可能オブジェクト
- 6. json辞書とハッシュの違い
- 7. Javaとphp5の違いMD5ハッシュ
- 8. C++(STL)のセットとマップの違い
- 9. Perlでのハッシュとハッシュリファレンスの違いは何ですか?
- 10. PythonとのPython - これらの2つのセットの違いは?
- 11. ハッシュのルビーとシェフの相違点
- 12. Pythonのセットとリストの違いは何ですか?
- 13. セット:: classicExtract()CakePHPの2.xのハッシュ::代替
- 14. 可用性セットの単一のVMと可用性セットのないVMとの違いは?
- 15. SHA1ハッシュの小さな違い
- 16. システムコールと命令セットの相違点
- 17. Pythonの2セット(リスト)の違い
- 18. パスに基づくハッシュの束縛されたセットに基づく無限のハッシュのセット
- 19. Pythonとre2cの正規表現の文字セットの違い
- 20. ノードの2つのセットとの違い - XSLT
- 21. オペレータ版と非オペレータ版のPythonセット操作の違い
- 22. CHMOD 755と750のアクセス許可セットの違い
- 23. PHPのデータベース結果セットのハッシュを見つけるには
- 24. セットや配列を2次元のRubyハッシュにするには?
- 25. ハッシュのような保存とインクリメンタルの違いは何ですか
- 26. ハッシュマップ、ハッシュセット、ハッシュ辞書の違いは何ですか?
- 27. ハッシュ結合とマージ結合(Oracle RDBMS)の違いは何ですか?
- 28. MIPSコードのセットの違いは何ですか?
- 29. b/wリスト、タプル、セット、辞書の違いは何ですか?
- 30. sigprocmask()内のセットと古いセット
Nahには、__values__はありません。彼らはキーのみを持っています:)(内部的には、ルビーセットはハッシュで実装されています) –
これは、多くの違いを意味します...もっと具体的にしてください。 – Gabriel