先看看java中的Array和List
java中的数组定义的时候,不会出现Array这个词,它是一个定长的对象组合,并且按照给定的顺序排列,数组中的元素的值可以任意修改为相同类型的值。
List在java中给人的感觉就是可变长的数组,其它的与其子类型相关。
scala中的Array和List
scala中的Array是一个关键字,访问元素的形式为str(0),其它的几乎没有什么分别。
scala中的List和java中的List有很大的不同。
scala中的List是具有相同类型元素的不可变对象序列。
scala.List <--> java.util.List
val list = List(1,2,3)
val list = List[Int](1,2,3)
List操作符:
:: 发音为cons,把一个新元素组合到已有List的最前端,然后返回结果List。
::是一个右操作数的方法,4::list返回一个新的结果,list还是原来的List(1,2,3)
方法名以冒号结尾的话,这个方法名就是右操作数的方法。
list.::(5)是行得通的,但是5::list确实更优美一些~
::: 会把两个List叠加到一起,举例说明:
val list1 = List(1,2,3)
val list2 = List(2,5)
list1:::list2 会返回一个List(1,2,3,2,5)
创建一个List的另一种方式为:val list=1::2::3::Nil
Nil是一个空类
方法:
thrill.count(s => s.length == 4) // count的函数文本决定了满足条件的数量 : count(p: (A) ⇒ Boolean): Int
thrill.drop(2) // 去掉List的前两个元素,返回剩余的元素List
thrill.dropRight(2) //去掉List的后两个元素,返回剩余的元素List
thrill.exists(s => s == "until") //exists的函数文本决定了是否存在满足条件的元素 : exists(p: (A) ⇒ Boolean): Boolean
thrill.filter(s => s.length == 4) //filter的函数文本为过滤条件,满足条件的元素依次组成List : filter(p: (A) ⇒ Boolean): List[A]
thrill.forall(s => s.endsWith("1")) //forall对所有的元素进行一个boolean判断!仅仅是判断 :forall(p: (A) ⇒ Boolean): Boolean
thrill.foreach(s => print(s)) //foreach对每一个!返回类型为Unit。 : foreach(f: (A) ⇒ Unit): Unit
thrill.head // 返回List的第一个元素
thrill.init // 返回除了最后一个之外的其他元素List
thrill.isEmpty // List是否为空
thrill.last // List的最后一个元素
thrill.length // List中元素的个数
thrill.map(s => s + "y") // map[B](f: (A) ⇒ B): List[B]
thrill.mkString(", ") // 返回元素组成的String
thrill.reverse // 逆序元素的列表
thrill.tail // 返回除掉第一个元素的thrill列表
thrill.sort((s, t) => s.charAt(0).toLowerCase < t.charAt(0).toLowerCase)
thrill.remove(s => s.length == 4) // 除去满足条件的元素,