集合(セット)に別の集合の要素がすべて含まれているかどうかを判定するには (containsAll / issubset / issuperset / subset? / subsetOf / <= / >=)

集合(セット)に別の集合の要素がすべて含まれているかどうかを判定する、つまり、部分集合の関係にあるかどうかを調べる方法。

Java superset.containsAll(subset)
Scala subset.subsetOf(superset)
Python subset.issubset(superset)
subset <= superset
superset.issuperset(subset)
superset >= subset

Java

Signature:

// st が subset のすべてを含んでいるかどうか
st.containsAll(subset);

Scala

Signature:

val st = Set("abc", "def", "ghi");
val subst = Set("def", "ghi");
println(subst.subsetOf(st)); // => true
println(st.subsetOf(subst)); // => false

Python

# st も subst も集合型として

# subst のすべてが st に含まれているかどうか
subst.issubset(st)
# または
subst <= st

# または
# st が subst のすべてを含んでいるかどうか
st.issuperset(subst)
# または
st >= subst

issubset, issuperset はセット(集合型)以外にリストなども受け入れる。

Ruby / JRuby

Setクラスのインスタンス同士で、一方が他方の部分集合の関係にあるかどうかを調べるには subset? または superset? というメソッドを使う。

require 'set'

st = Set.new ["abc", "def", "ghi"]

subst = Set.new ["def", "ghi"]

p subst.subset?(st) # => true
p st.subset?(subst) # => false

p subst.superset?(st) # => false
p st.superset?(subst) # => true
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。