++
该方法用于连接两个集合,list1++list2 。
:+
和+:
两者的区别在于:+
方法用于在尾部追加元素,+:
方法用于在头部追加元素,和::
很类似,但是::
可以用于pattern match ,而+:
则不行. 关于+:
和:+
,只要记住冒号永远靠近集合类型就OK了。::被称为cons,意为构造,向队列的头部追加数据,创造新的列表。用法为
x::list
,其中x
为加入到头部的元素,无论x
是列表与否,它都只将成为新生成列表的第一个元素,也就是说新生成的列表长度为list的长度+1(btw,x::list
等价于list.::(x)
):::
该方法只能用于连接两个List类型的集合。
- apply方法
- 伴生类
- 伴生对象
类名() //调的是对Object.apply()
对象() //Class.apply()
最佳实践
在object中new一个apply,再去new一个类class
object ApplyTest{ def apply()={ new ApplyTest }}复制代码
可变数组
val c=scala.collection.mutable.ArrayBuffer[Int]()
c+=2c+=(3,4,5)c++=Array(6,7,8)c.insert(0,0)c.remove(1)c.remove(0,3)c.trimEnd(2)复制代码
不可变数组
d.toArray //转变
遍历
for(i <- until c.length){}for(ele <- c){}for(i<- (0 until c.length).reverse){ //倒叙取值}复制代码
val l5= scala.collection.mutable.ListBuffer[Int]()
l5-=2l5-=3l5-=(1,4)l5--=List(5,6,7,8)复制代码
- l5.toList
- l5.toArray
- l5.head
- l5.isEmpty
- l5.tail.head
def sum(nums:Int*):Int={ if(nums.length==0){ 0 }else{ nums.head +sum(nums.tail:_*) //point }}复制代码
set
val set1=scala.collection.mutable.Set[Int]()
高阶函数
val f=List(List(1,2),List(3,4),List(5,6))
f.reduce()
f.reduceRight(_-_)
f.flatten
f.fold(0)(_-_)
f.flat
f.flatmap(_.map(_*2))
资源类
val txt= scala.io.Source.fromFile("/User/").mkString