takafumi blog

日々の勉強メモ

Scala 集合 / Set

環境   Scala 2.11.6 CentOS7.0

Scalaスケーラブルプログラミング」(コップ本)メモ

読了:第04章まで

■ 集合 / Set

Scalaの集合は

  • 順序が存在しない
  • 重複を許可しない
  • ミュータブルとイミュータブルが両方存在する
  • 基本はイミュータブル
  • 異なる型を要素に追加できる

である。

▽初期化
// 通常はイミュータブルSet
scala> val set1 = Set(1,2,"a")
set1: scala.collection.immutable.Set[Any] = Set(1, 2, a)

// ミューターブルSet。importも可。
scala> val set2 = scala.collection.mutable.Set(3, 4, "ABC")
set2: scala.collection.mutable.Set[Any] = Set(3, 4, ABC)

scala> 
▽値の設定

インデックス(キー)が存在しないので、個別の値を特定して設定はできない

▽値の取得

個別の値を取得する方法はない。

// for文を使った取得
scala> for (elm <- set1) println(elm)
1
2
a

// foreachを使った取得
scala> set1.foreach(elm => println(elm))
1
2
a
▽値の追加
// イミュータブルSetには値を追加できない
scala> set1 += 5
<console>:9: error: value += is not a member of scala.collection.immutable.Set[Any]
              set1 += 5

// ミュータブルSetへは値を追加可能
scala> set2 += 5
res5: set2.type = Set(5, 3, 4, ABC)

takafumi-s.hatenablog.com