概要 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