NEPLg2 Standard Library - hashset - hashset
Web Playground
Web Playground

hashset

HashKey trait にもとづく generic 集合しゅうごう

目的もくてき

  • HashSet<.T>提供ていきょうし、new / insert / contains / remove / len / free の bare 名で操作そうさできるようにします。
  • key ごとの比較ひかくと hash 計算けいさんHashKey trait に委譲いじょうし、型名埋め込み API をなくします。

実装じっそう

  • open addressing + linear probing をもちいる固定長こていちょう hash table です。
  • bucket 状態じょうたい0 = empty, 1 = full, 2 = tombstone管理かんりします。

注意ちゅうい

  • key 型 .THashKey の impl を必要ひつようがあります。
  • 容量ようりょう固定こていで、自動 rehash はまだおこないません。

計算量けいさんりょう

  • 平均へいきん insert / contains / remove は O(1)、最悪さいあくは O(n) です。

HashSet

hash table 本体ほんたい

new

からHashSet<.T>つく

insert

要素ようそ追加ついかする

contains

要素ようそ存在そんざいたしかめる

remove

要素ようそ削除さくじょする

len

要素数ようそすうかえ

free

内部ないぶメモリを解放かいほうする