概要 2015/03/21
集合を表すコンテナ型。複数のオブジェクトを順序の概念なしに格納する。等値のオブジェクトを複数格納することはできない。
型が静的な言語では、格納されている要素の型も静的に決定されている必要がある。
Java 2016/07/06
java.util.Set インターフェースがあり、その実装クラスとして java.util.HashSet や java.util.TreeSet などがある。
class java.util.Set | Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/util/Set.html
class java.util.HashSet | Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html
class java.util.TreeSet | Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html
Scala 2015/03/21
Javaの java.util.Set インターフェースやその実装クラスのほかに、
Scalaのコレクションフレームワークとして scala.collection.Set トレイトがある。
順序が関係なく同じオブジェクトを複数格納する必要がない場合はリストだとかよりもこの Set を使うべき。ただそんなときも、自分はscala.collection.Setが共変でないのが邪魔で
Seqの類を使ってしまう場合がある。
Set には不変(イミュータブル)なものと可変(ミュータブル)なものがあるが、
scala.Predef.Set が scala.collection.immutable.Set の別名として定義されているため、なにもimportせずに Set として参照すると不変な Set になる。
Setのインスタンス生成の例
val st: Set[String] = Set("abc", "def", "ghi");
Python 2014/09/17
セット(集合)というデータ型があり、イミュータブル(変更不可)とミュータブル(変更可能)の 2種類がある。集合型ともいう。
集合型 | Python 2.7 documentation
http://docs.python.jp/2/library/stdtypes.html#set-set-frozenset
集合型 | Python 3 documentation
http://docs.python.jp/3/library/stdtypes.html#set-types-set-frozenset
Ruby 2015/03/16
重複のないオブジェクトの集合を表すデータ構造として Set というクラスが標準で存在する。ただ、和集合、差集合、積集合などの基本的な演算は普通の配列でもできる。
Set | Ruby 2.2 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.2.0/class/Set.html