前回のListにひきつづき、今回もコレクションを使ってみようと思いマス。
今回は、Setデス。
scalaのSetは大きくわけてミュータブルのとイミュータブルのと2種類あ
るみたいデス。たとえばHashSetなんかも、scala.collection.mutableパッ
ケージとscala.collection.immutableパッケージに同名のクラスがありま
す。
まずはミュータブルなヤツを使ってみます。やはりテキトーに中身をつめ
て、その内容をすべて表示してみよーかと思いマス。
こんなカンジのスクリプトを書いて、実行すると
こんな風に結果が表示されました。
上記スクリプトでは、最初にscala.collection.mutableパッケージの
HashSetをインポートしてます。次にnewを使ってHashSetのインスタンス
を作って、要素を3つセットしてます。要素の追加は+=でできるんですね。
で、最後にforeach使って全要素を出力してます。これはListのときと同
じですねー。
次に、イミュータブルなヤツで同じコトをしてみます。
今度はこんなスクリプトで、実行すると
結果はミュータブル版と同じデス。
こっちのスクリプトでは、scala.collection.immutable.HashSetをインポート
してます。次にHashSetのインスタンスを作るんですが、このときソレを代
入するcountSetはvarで型はSet[String]にしときます。そのあと、さっき
と同じく3つ要素を追加します。今回はイミュータブルなので+=は使えま
せん(というかそんなメソッドがない)。なので、+を使って結果をcountSet
の新たな値としています。varで宣言したのはそのためデス。
ミュータブルかどうかが異なる同名のクラスですが、APIは若干チガウの
ですねー。
過去のメモ
インストール 定数、変数、関数、forループ 配列 List
今回は、Setデス。
scalaのSetは大きくわけてミュータブルのとイミュータブルのと2種類あ
るみたいデス。たとえばHashSetなんかも、scala.collection.mutableパッ
ケージとscala.collection.immutableパッケージに同名のクラスがありま
す。
まずはミュータブルなヤツを使ってみます。やはりテキトーに中身をつめ
て、その内容をすべて表示してみよーかと思いマス。
import scala.collection.mutable.HashSet
val countSet = new HashSet[String]
countSet += "one"
countSet += ("two", "three")
countSet.foreach(println)
val countSet = new HashSet[String]
countSet += "one"
countSet += ("two", "three")
countSet.foreach(println)
こんなカンジのスクリプトを書いて、実行すると
three
two
one
two
one
こんな風に結果が表示されました。
上記スクリプトでは、最初にscala.collection.mutableパッケージの
HashSetをインポートしてます。次にnewを使ってHashSetのインスタンス
を作って、要素を3つセットしてます。要素の追加は+=でできるんですね。
で、最後にforeach使って全要素を出力してます。これはListのときと同
じですねー。
次に、イミュータブルなヤツで同じコトをしてみます。
import scala.collection.immutable.HashSet
var countSet:Set[String] = new HashSet[String]
countSet = countSet + "one"
countSet = countSet + "two" + "three"
countSet.foreach(println)
var countSet:Set[String] = new HashSet[String]
countSet = countSet + "one"
countSet = countSet + "two" + "three"
countSet.foreach(println)
今度はこんなスクリプトで、実行すると
three
two
one
two
one
結果はミュータブル版と同じデス。
こっちのスクリプトでは、scala.collection.immutable.HashSetをインポート
してます。次にHashSetのインスタンスを作るんですが、このときソレを代
入するcountSetはvarで型はSet[String]にしときます。そのあと、さっき
と同じく3つ要素を追加します。今回はイミュータブルなので+=は使えま
せん(というかそんなメソッドがない)。なので、+を使って結果をcountSet
の新たな値としています。varで宣言したのはそのためデス。
ミュータブルかどうかが異なる同名のクラスですが、APIは若干チガウの
ですねー。
過去のメモ