ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

先週のScala:コレクションの続き(主にSeq)

2011-02-20 20:23:10 | PG(Scala)

先週のScalaのお勉強は、先々週に引き続いてコレクション

  • Benchmark…実行時間を計測するクラス。コレクションのメソッドの実行時間を計るのに使用。
  • Seq…Seq(Listとか)のインスタンス生成・メソッドの実行時間の試測。
  • forの変換for式がforeachとかmapとかfilterに置き換えられる事を確認。
  • 関数への変換…コレクションを関数型の変数に代入している例を見かけて、どうなってるんだ?!とびっくりしたが…。
  • Javaとの変換…Javaのコレクションとの変換方法。

Seqの主な不変クラスであるList・Vector・StreamとArrayのどれが速いかと言うと、やはり一概には言えないという結論になる^^;
呼び出すメソッドによって当然異なるし、保持している要素数によっても異なる。
今回は実行速度にしか着目しなかったが、メモリー使用量も異なるだろうし。

とりあえず重要なのは、ScalaのVectorはJavaのVectorとは何の関係もない、ということ。
JavaのVectorはArrayList(やCopyOnWriteArrayList)に取って代わられて要らない子扱いだが、ScalaのVectorは2.8から導入されたというだけあって、なかなか優秀な感じ。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする