garbage truck

イロイロ。

Scalaメモ(Map)

2007-11-28 00:53:06 | scala
配列、List、Setときたので、次はMapを使ってみます。

MapもSetと同様にイミュータブルなMapとミュータブルなMapが用意
されてるみたいデス。
とりあえず、これまでと同じようなカンジの動作をするスクリプト
をミュータブルなHashMapを使ってやってみることにします。
import scala.collection.mutable.HashMap

val countMap = new HashMap[Int, String]
countMap += 1 -> "one"
countMap += 2 -> "two"
countMap += 3 -> "three"

for (key <- countMap.keySet)
println(key + ":" + countMap(key))

このスクリプトを実行した結果はこんなカンジです。
2:two
1:one
3:three

最初の行でscala.collection.mutableパッケージのHashMapをイン
ポートしています。

その後、newを使ってHashMapのインスタンスを作ってマス。Mapの
場合はキーの型と値の型を指定します。このスクリプトだとキーが
Intで値がStringデス。

要素の追加は、Setと同じく+=でできます。右辺の->は、->の左側
を1番目の要素、右側を2番目の要素にもつTupleを戻すみたいデス。
なので、countMap += Tuple(4, "four")みたいに書くのと同じなん
ですかねえ。

最後にHashMapの全要素のキーと値を出力しています。countMap(key)
でkeyに対応する値が取得できます。countMap.apply(key)というこ
とですかねー。

次はイミュータブルなMapを使って同じことやってみます。
val countMap = Map(1 -> "one", 2 -> "two", 3 -> "three")

countMap.foreach(entry => println(entry._1 + ":" + entry._2))

で、実行してみると同じ出力が得られます。
2:two
1:one
3:three

このスクリプトは、最初の行でMapのインスタンスを作っています。
Listのときと同じような作り方デス。イチイチnewするよりはこっち
のほーがラクですかねー。

で、次は出力なのですが今回はforeachメソッドを使うことにしまし
た。foreachに渡した関数のパラメータにはキーと値のTupleが入るの
で、ソレを個別に取り出して出力しています。

過去のメモ
  • インストール
  • 定数、変数、関数、forループ
  • 配列
  • List
  • Set



  • 最新の画像もっと見る