scala编程第16章学习笔记(1)
List列表的基本操作
head方法獲得列表的第一個元素
tail方法獲得列表除第一個元素之外的其它元素
isEmpty:判斷列表是否為空,空的話返回真
last:獲得列表最后一個元素
init:獲得除最后一個元素之外的元素
reverse:反轉(zhuǎn)列表
前綴與后綴:drop、take、splitAt
xs take n 返回xs列表的前n個元素,如果n大于xs.length,則返回整個xs。
xs drop n 返回xs列表除前n個元素之外的所有元素,如果n大于xs.length,則返回空列表。
splitAt操作在指定位置拆分列表,并返回對偶列表。
xs splitAt n等價于(xs take n, xs drop n)
例子如下:
scala> List(1, 2, 3, 4, 5) take 2 res2: List[Int] = List(1, 2)scala> List(1, 2, 3, 4, 5) drop 2 res3: List[Int] = List(3, 4, 5)scala> List(1, 2, 3, 4, 5) splitAt 2 res4: (List[Int], List[Int]) = (List(1, 2),List(3, 4, 5))元素選擇:apply方法和indices方法
apply方法實現(xiàn)了隨機元素的選擇,與其它類型一樣,當對象出現(xiàn)在應該是方法調(diào)用的函數(shù)位置上時,就會隱式地插入apply方法
xs apply n 等價于 (xs drop n).head
indices方法可以返回指定列表的所有有效索引值組成的類表:
嚙合列表:zip
zip操作可以把兩個列表組成一個對偶列表:
scala> abcde.indices zip abcde res10: scala.collection.immutable.IndexedSeq[(Int, Char)] = Vector((0,a), (1,b),(2,c), (3,d), (4,e))如果兩個列表的長度不一致,那么任何不能匹配的元素將被丟掉:
scala> abcde zip List(1, 2, 3) res11: List[(Char, Int)] = List((a,1), (b,2), (c,3))zipWithIndex把列表元素與索引值嚙合在一起
scala> abcde.zipWithIndex res12: List[(Char, Int)] = List((a,0), (b,1), (c,2), (d,3), (e,4))顯示列表:toString方法和mkString方法
toString操作返回列表的標準字符串表達形式:
scala> abcde.toString res13: String = List(a, b, c, d, e)如果需要其他表達形式,可以使用mkString方法。xs mkString(pre, sep, post)
其中pre是需要在顯示的元素之前的前綴字符串,sep為兩個元素之間的分割字符串,post為顯示在最后面的后綴字符串。
xs.mkString 等價于 xs mkString("", sep, "")
xs.mkString 等價于 xs mkString ""
scala> abcde mkString ("[", ",", "]") res15: String = [a,b,c,d,e]scala> abcde mkString "" res17: String = abcdescala> abcde.mkString res19: String = abcdescala> abcde mkString ("List(", ", ", ")") res20: String = List(a, b, c, d, e)mkString方法還有名為addString的變體,它可以把構(gòu)建好的字符串添加到StringBuilder對象中,而不是作為結(jié)果返回:
scala> val buf = new StringBuilder buf: StringBuilder =scala> abcde addString (buf, "(", ";", ")") res21: StringBuilder = (a;b;c;d;e)mkString和addString方法都繼承自List的超特質(zhì)Iterable,因此他們可以應用到各種可枚舉的集合類上。
?
總結(jié)
以上是生活随笔為你收集整理的scala编程第16章学习笔记(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ibatis的简介与初步搭建应用
- 下一篇: 【linux】学习2