2016/01/26 Scala学习2

  1. 数组

    实例化一个数组对象可以用Array,示例代码如下:

    val myArray = new Array[String](3) //创建一个长度为3,类型为字符串的数组

    myArray(0) = "a"

    myArray(1) = "b"

    myArray(2) = "c"

    for(i <- 0 to 2)

            println(myArray(i))  //循环输出数组中的内容

    可以看到,scala中一个语句的末尾不需要“;”,对于for或if也可以不写“{}”,另外对数组中元素赋值的时候,实际是调用数组的update方法,所以myArray(0) = "a"也可以写成myArray.update(0,"a")

    我们还可以用简单的方式,创建并初始化一个数组,代码如下:

    val myArray = Array("a","b","c")

  2. List

    Scala中的list对象是不可修改的,如果需要使用不可修改的序列,可以选择List。这里说的不可修改,是指对于已经创建并初始化的List中的元素,你不能再为其重新赋值,也不可以增加或删除已有的元素。 示例代码:

    val a = List(1,2,3)
    val b = 4::a
    println(b)

    输出结果:List(4, 1, 2, 3),因为a是不可变的,所以只能创建一个b来存储,但是内存中并没有又复制一份”1,2,3“,b中的内容时这样的:4 -> List(1,2,3)

    List还有很多内置方法,比如head,tail,fill等等,可参考如下地址http://www.yiibai.com/scala/scala_collections.html

  3. 元组 Tuples

    和List相同,元组也是不可修改的,但元组可以包含不同类型的元素,定义了元组之后可以使用"._"和索引来访问元组中的元素,要注意的是"._"+"索引",这里的索引是从1开始的,而List(索引)中的索引是从0开始的。

    val c = (1,"abc")
    println(c._2)

  4. Set和Map

    Set和Map分别有自己的可修改类型和不修改类型,并且名称相同,只是包路径不同:

    scala.collection.mutalbe.Set 可修改的Set

    scala.collection.immutalbe.Set 不可修改的Set

    scala.collection.mutalbe.Map 可修改的Map

    scala.collection.immutalbe.Map 不可修改的Map

    部分Set内置方法及操作:

    set.min 返回set内最小的值

    set.max 返回set内最大的值

    set & set1 取set和set1的交集

    set ++ set1 连接两个set

    set.diff(set1) 返回set1中没有的set中的元素,比如

          var mySet = Set("aaa","bbb")
          mySet += "ccc"
          var mySet1 = Set("111","aaa")
          println(mySet.diff(mySet1))

    输出的结果是:Set(bbb, ccc)

  5. 文件读取

    写一个文件读取的小例子,在资料里看到的

    def main(args: Array[String]) {
          println("Hello Scala !!!!");
          //文件读取
          readFile("D:/scala_file.txt")
        }

    def readFile(path:String):Int ={
          if(path.length() > 0) {
            for(line <- Source.fromFile(path).getLines())
              println(line) //输出文件中的每一行
               1
          }else
            println ("请输入文件路径")
             0
        }

你可能感兴趣的:(scala,集合类型)