叽叽喳喳,嘻嘻哈哈

导航

scala-学习 2

列表操作
List() 或者是 Nil  空list
	scala> val a = List()
 		a:List[Nothing] = List()
        print(a.length)  a.length = 0 
    scala> val b = Nil
          b: scala.collection.immutable.Nil.type = List()
         print(b.length) b.length = 0
val c = List("one","two","three")
//常见带有三个值的的新 List[String]  注意这是[]
val d = "one"::"two"::"three"::Nil
//同上  :: 为操作符,它是属于该操作符右边的操作数的方法。作用是把左边的元素加到右边的列表最前面。
val e = c:::d 
  //::: 把两个列表进行叠加 ["one","two","three","one","two","three"]
e(2)  // 返回 列表中索引为 2 的元素 类似于 python的  List[2]
e.count(s => s.length == 3) //计算e中长度为3 的字符串的的个数。 => 这个操作符以后再说。。。
val f = e.drop(2) //去掉 e 的前两个元素,并将新列表返回。注意:e 还是原来的那6个元素
val g = e.dropRight(2) //去掉 e 的最后两个元素。返回新列表。注意:e 还是原来的 e
e.exists(s => s == "haha") //返回一个布尔值,e中是否含有 "haha"这个元素
val h = e.filter(s => s.length == 5) //返回列表中长度为5 的元素,组成一个新列表。
e.forall(s => s.endswith("a")) // 返回一个布尔值, 列表中的所有元素是否都以 "a",结尾
e.foreach(s => print(s)) //对列表中的每个字符串都进行打印操作
e.foreach(print) //作用、效果同上。
val i = e.head // 返回 e 的第一个元素	
val j = e.init //返回 e列表除了最后一个元素组成的新列表
e.isEmpth //返回一个布尔值,判断 e是否为空列表
val k = e.last //返回 e 的最后一个元素
e.length //返回 e 的长度。或者说是 元素个数
val l = e.map(s => s+"z")// 给e里面的每个元素末尾加一个“z”,返回一个新的列表
  //如果将 + 换成 - 是不行的,因为String对象没有 - 方法
  //如果 val l = e.map(s => "z") 那么将返回一个e.length个的“z” 组成的新列表。其实很好理解,就是挨个替换嘛
val m = e.mkString("----") //返回一个有“----”连接e中个元素的字符串。类似于python的join(“------”)
val n = e.reverse  //返回一个新列表,是e 内元素的逆序排列 。把python的sort方法中的 reverse参数拿出来了,成了方法
val o = e.tail //返回e中除了第一个所有的元素组成的列表。和 init相对

你会发现 List 没有append方法。但是通过 :: 方法和reverse 的结合使用,可以达到相同的效果。

还有一种 ListBuffer 可以提供append方法 ,然后调用toList 方法,这个以后介绍(ps:因为目前我也不知道 😃

posted on 2017-07-03 23:09  叽叽喳喳,嘻嘻哈哈  阅读(106)  评论(0编辑  收藏  举报