2011年10月5日水曜日

ScalaでHashtable系を使ってみる

object Hoge {
    def main(args:Array[String]) {
        import java.util.Hashtable

        // ----------------------------
        // 一番シンプルなパターン
        // ----------------------------
        // Javaだと Hashtable <String,String> hTable = new Hashtable <String,String>();
        val hTable = new Hashtable[String,String]()
        hTable.put("key1", 1.toString)
        hTable.put("key2", 2.toString)

        println(hTable.get("key1"))
        println(hTable.get("key2"))

        println("--------")

        // ----------------------------
        // リストに突っ込んでみる
        // ----------------------------
        //var hTableList:List[Hashtable[String, String]] = List()
        var hTableList = List[Hashtable[String, String]]()
        for ( i <- 1 to 10 ) {
            val hTable = new Hashtable[String,String]()
            hTable.put( "key", i.toString )
            hTableList = hTableList ::: List(hTable)
        }
        hTableList.map( record => println( record.get("key") ) )

        println("--------")

        // ----------------------------
        // せっかくなのでScalaのMapを使ってみる
        // ----------------------------
        //var tableList:List[Map[String,String]] = List()
        var tableList = List[Map[String,String]]()
        for ( i <- 1 to 10) {
            tableList = tableList ::: List( Map("key" -> i.toString) )
        }
        tableList.map( record => println( record.get("key") ) )

        println("--------")

        // ----------------------------
        // リストをもう少しかっこよくする
        // ----------------------------
        val listBuffer = new scala.collection.mutable.ListBuffer[Map[String,String]]
        for ( i <- 1 to 10 ) {
            listBuffer += Map( "key" -> i.toString )
        }
        listBuffer.toList.map( record => println(record.get("key")) )
    }
}

0 件のコメント: