Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

標準ライブラリ「set」で集合を扱う(その4)

まさか、このネタの続きを書く事になるとは思いませんでした……
Ruby標準添付ライブラリのSetは、集合を扱う際に便利な奴です。

これ、実は重複データを取り扱う際に結構有用だったりするそうです。

実際のところ

配列で重複があるデータを取り扱う場合、私であれば

ary = []
#>> []

ary << "uiA, 30, 35"
ary << "uiB, 31, 36"
ary << "uiC, 38, 31"
ary << "uiA, 30, 35" ##重複
ary << "uiA, 30, 33"

p ary
#>> ["uiA, 30, 35", "uiB, 31, 36", "uiC, 38, 31", "uiA, 30, 35", "uiA, 30, 33"]

p ary.uniq
#>> ["uiA, 30, 35", "uiB, 31, 36", "uiC, 38, 31", "uiA, 30, 33"]

てな感じでやっていました。
この時、配列のかわりにSetを使ってあげると……そういった余計な事は不要となります

ary = Set.new
#>> []

ary << "uiA, 30, 35"
ary << "uiB, 31, 36"
ary << "uiC, 38, 31"
ary << "uiA, 30, 35" ##重複
ary << "uiA, 30, 33"

p ary
#>> #<Set: {"uiA, 30, 35", "uiB, 31, 36", "uiC, 38, 31", "uiA, 30, 33"}>

こんな感じに、空のセットクラスにガンガン放り込むだけで重複は消し去ってくれます。
一々Array.uniqとかやらないでいいんですよ(白目